ログ配布のセカンダリへのフェールオーバー
ログ配布のセカンダリへのフェールオーバーは、プライマリ サーバー インスタンスが失敗した場合、またはプライマリ サーバー インスタンスにメンテナンスが必要な場合に役立ちます。
制御されたフェールオーバーの準備
プライマリ データベースは最新のバックアップ ジョブの後も更新され続けるため、通常、プライマリ データベースとセカンダリ データベースは同期されていません。また、場合によっては、最新のトランザクション ログのバックアップは、セカンダリ サーバー インスタンスにコピーされていなかったり、コピーされたログのバックアップの一部がセカンダリ データベースにまだ適用されていない可能性があります。可能な場合は、すべてのセカンダリ データベースをプライマリ データベースに同期することから開始することをお勧めします。
ログ配布ジョブに関する詳細については、「ログ配布について」を参照してください。
フェールオーバー
セカンダリ データベースにフェールオーバーするには、次の操作を行います。
- バックアップ共有からコピーされていないバックアップ ファイルを、各セカンダリ サーバーのコピー先フォルダにコピーします。
- 適用されていないトランザクション ログのバックアップを、各セカンダリ データベースに順に適用します。詳細については、「トランザクション ログ バックアップを適用する方法 (Transact-SQL)」を参照してください。
- プライマリ データベースにアクセスできる場合は、アクティブなトランザクション ログをバックアップし、そのログのバックアップをセカンダリ データベースに適用します。
元のプライマリ サーバー インスタンスが破損していない場合は、WITH NORECOVERY を使用してプライマリ データベースのトランザクション ログの末尾をバックアップします。これにより、データベースは復旧状態で維持され、最終的には、置換プライマリ データベースからトランザクション ログのバックアップを適用することにより、このデータベースをロールフォワードできるようになります。
詳細については、「トランザクション ログのバックアップ」を参照してください。 - セカンダリ サーバーが同期された後は、任意のサーバーのセカンダリ データベースを復旧し、そのサーバー インスタンスにクライアントをリダイレクトすることによって、そのサーバーにフェールオーバーできます。復旧によって、データベースは一貫性のある状態になり、オンラインになります。詳細については、「データを復元せずにデータベースをバックアップから復旧する方法 (Transact-SQL)」を参照してください。
メモ : セカンダリ データベースを使用可能にするときは、そのデータベースのメタデータと元のプライマリ データベースのメタデータに一貫性があることを確認します。詳細については、「データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理」を参照してください。 - セカンダリ データベースを復旧した後は、そのデータベースが他のセカンダリ データベースのプライマリ データベースとして機能するように再構成できます。詳細については、「プライマリとセカンダリ間のロールの切り替え」を参照してください。
他に使用できるセカンダリ データベースがない場合の詳細については、「ログ配布を有効にする方法 (SQL Server Management Studio)」または「ログ配布を有効にする方法 (Transact-SQL)」を参照してください。
参照
概念
ログ配布テーブルとストアド プロシージャ
ログ末尾のバックアップ