フェイルオーバーサーバーのステータス(ミラー、切断、回復中)とプリンシパルサーバーのステータス(プリンシパル、切断)があります。
これらのサーバーを再接続するプロセスは何ですか?
プリンシパルサーバーでミラーリングエンドポイントを再起動すると、これが解決する場合があります。
これを行うには、次のT-SQLを使用します。
ALTER ENDPOINT Endpoint_Name STATE = STOPPED
ALTER ENDPOINT Endpoint_Name STATE = STARTED
エンドポイントの名前を取得します。
SELECT * FROM sys.endpoints
WHERE type = 4
詳細は KB 2490051 を参照してください。
まず、プリンシパルでこのT-SQLコマンドを使用して再接続してもらいます。
ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;
それが失敗した場合は、プリンシパルとミラーの間の通信の問題があり、そこから楽しみが始まります。 IP接続から、ミラーリングエンドポイントのセキュリティ、さまざまな暗号化方法まで、あらゆるものを使用できます。詳細なトラブルシューティングを行う必要がある場合は、 Robert Davisの著書Pro SQL Server 2008 Mirroring をお勧めします。
今回のケースでは、ミラーリングエンドポイントの接続に証明書認証を使用していますが、問題は、ミラーリングエンドポイントが使用していた証明書の1つが期限切れになったためです。
エンドポイント認証に関連する証明書の有効期限を確認するには、
SELECT * FROM sys.certificates
この場合、有効期限が切れたものについては新しい証明書を作成し、インポート後にALTER ENDPOINT
を実行する必要があります。
次の手順でこの問題を修正しました。PRIMARYでエンドポイントを再起動しても解決しませんでした
プライマリ上:
SELECT * FROM sys.endpoints WHERE type = 4
ALTER ENDPOINT Mirroring STATE = STOPPED
ALTER ENDPOINT Mirroring STATE = STARTED
ミラー上:
SELECT * FROM sys.endpoints WHERE type = 4
ALTER ENDPOINT Mirroring STATE = STOPPED
ALTER ENDPOINT Mirroring STATE = STARTED
PRIMARYに戻る:
ALTER DATABASE PACXDSite SET PARTNER RESUME;
「RESUME PARTNER」が機能しない場合
ALTER DATABASE AdventureWorks2016 SET PARTNER RESUME;
そのデータベースのミラーを解除して再構成します。
--STEP 1 ON PRINCIPAL、データベースのミラーを解除します
ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;
--STEP 2 ON MIRROR、データベースのミラーを解除します
ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;
-ミラーのステップ3
RESTORE LAST FULL BACKUP DATABASE WITH NO RECOVERY
RESTORE TRAN BACKUP DATABASE WITH NO RECOVERY
-ミラーのステップ4
ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://PRINCIPAL.MyDomain.COM:5022';
-プリンシパルのステップ5
ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://MIRROR.MyDomain.COM:5022';
--WITNESSがすでに構成されている場合は、STEP 6 ON PRINCIPAL
ALTER DATABASE AdventureWorks2016 SET WITNESS = 'TCP://WITNESS.MyDomain.COM:5022';
プリンシパルデータベースは常にオンラインで利用可能であるため、上記のすべての作業は勤務時間中に行うことができます。
ケース:
プリンシパルサーバーで以下のコマンドを実行すると:
alter database 'Database_Name' set partner off
上記のコマンドを実行した後、DBは[mirror, disconnected]
ミラーサーバーの状態。
解決:
手順1:ミラーでクエリの下を実行する
exec sp_resetstatus 'Database_Name'
ステップ2:以下のコマンドを実行すると、DBが使用可能になります。
restore database 'Database_Name' with recovery
注:ステップ2は回復するのに時間がかかります。