データベース ミラーリング セッションを手動でフェールオーバーする方法 (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン)

ミラー化されたデータベースが同期されている場合 (つまり、データベースが SYNCHRONIZED 状態である場合)、データベース所有者はミラー サーバーに対して手動フェールオーバーを開始できます。 手動フェールオーバーは、プリンシパル サーバーのみから開始できます。

データベース ミラーリング セッションを手動でフェールオーバーするには

  1. プリンシパル サーバーに接続します。

  2. 次のように、データベース コンテキストを master データベースに設定します。

    USE master;

  3. プリンシパル サーバーで次のステートメントを実行します。

    ALTER DATABASEdatabase_name SET PARTNER FAILOVER (database_name はミラー化されたデータベースです)。

    これにより、プリンシパル ロールへのミラー サーバーの移行がすぐに開始されます。

前のプリンシパルでは、クライアントはデータベースとの接続が切断され、インフライト トランザクションがロールバックされます。

Note

Microsoft 分散トランザクション コーディネーター を使用して準備されたが、フェールオーバーが発生した場合もコミットされないトランザクションは、データベースのフェールオーバー後に中止されたと見なされます。

参照

ALTER DATABASE データベース ミラーリング (Transact-SQL)
データベース ミラーリング セッションの手動フェールオーバー (SQL Server Management Studio)
データベース ミラーリング セッション中の役割の交代 (SQL Server)