web-dev-qa-db-ja.com

SQL Serverミラーリングを一時的に無効にする

自動フェールオーバー(プライマリ/ミラー/ミラーリング監視)を備えた安全性の高いSQL Server 2012ミラーリング構成が完全にシャットダウンされ、ハードウェアを移動するために再起動される移行が進行中です。

シャットダウンは自動化によって行われているため、シャットダウンの順序は厳密に制御されません。シャットダウン/再起動中に役割が切り替わらないようにするため、監視を「削除」する必要があります。これは、ミラーリングされたデータベースごとにTSQLを介して明示的にミラーリング監視を削除し(約5つあります)、すべての再起動/再同期後に再度追加するか、ミラーリング監視でSQL Serverサービスを無効にすることで実行できるようです。 2番目のオプションはそれほど手間がかからないように見えますが、私が目にするリファレンスのほとんどは、各セッションからミラーを削除してから、戻って後で追加し直すと言っています。

メンテナンスが完了するまで、監視SQLサーバーサービスを停止して無効にしない理由はありますか?ミラーリング監視がないとフェールオーバーは発生せず、サービスを再起動して回復するだけです。

また、シャットダウンの直前にプライマリでtlogバックアップを無効にして、ミラーが再起動後に自動的に再同期できるようにすることも計画しています。

4
Bill Matson

documentation から、すべてのサーバーから証人を削除するのではなく、単に証人をシャットダウンすることができます。

これにより、ミラーリングは "パートナー間の"クォーラムとなり、自動フェールオーバーは発生しなくなります。

もちろん、本番環境で試す前に、開発セットアップでテストします。

2つのパートナーで構成されるパートナー間クォーラム。

パートナーがクォーラムを保持している限り、データベースはSYNCHRONIZED状態のままであり、手動フェイルオーバーが可能です。証人なしでは、自動フェールオーバーは不可能です。ただし、ミラーリング監視がクォーラムを回復すると、セッションは通常の操作を再開し、自動フェールオーバーが再びサポートされます。