SQL Server ミラーリングの手動フェールオーバー
次のように、データベース コンテキストを master データベースに設定して各コマンドを実行します。
USE master;
(1)手動フェールオーバー
ALTER DATABASE SET PARTNER FAILOVER
※ミラーをプリンシパルに切り替える際に使います。
また、旧プリンシパルをプリンシパルに戻す際も使います。
■プリンシパルサーバー立ち上げ時に自動でミラーリングを復旧する方法
SQL Serverエージェントにsqlcmdユーティリティを登録し、ミラー側でフェールオーバーコマンドを実行させる
[failover.txt] use master go ALTER DATABASE SET PARTNER FAILOVER
[エージェントに登録するコマンド]
sqlcmd -S -l 30 -i c:\sql\failover.txt -o c:\sql\sqllog.txt
(2)ミラーリング中断
ALTER DATABASE SET PARTNER SUSPEND
※自動フェールオーバー環境の場合、プリンシパル側を停止すると勝手にミラー側に切り替わってしまいます。
自動的にフェールオーバーさせない場合はこのコマンドでミラーリングを中断させられます。
(3)ミラーリング再開
ALTER DATABASE SET PARTNER RESUME
※ミラーリングを中断した状態から、再開する際に使用します。
(4)ミラー側を強制的にプリンシパルに昇格させる
ALTER DATABASE SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
※注意:元のプリンシパルサーバーは必ず停止させる必要があります
理由は、クライアントが元のプリンシパルを本物と誤認識して使用してしまう可能性があるためです