ログ配布のセカンダリへのフェールオーバー

ログ配布のセカンダリへのフェールオーバーは、プライマリ サーバー インスタンスが失敗した場合、またはプライマリ サーバー インスタンスにメンテナンスが必要な場合に役立ちます。

制御されたフェールオーバーの準備

プライマリ データベースは最新のバックアップ ジョブの後も更新され続けるため、通常、プライマリ データベースとセカンダリ データベースは同期されていません。また、場合によっては、最新のトランザクション ログのバックアップは、セカンダリ サーバー インスタンスにコピーされていなかったり、コピーされたログのバックアップの一部がセカンダリ データベースにまだ適用されていない可能性があります。可能な場合は、すべてのセカンダリ データベースをプライマリ データベースに同期することから開始することをお勧めします。

ログ配布ジョブに関する詳細については、「ログ配布の概要」を参照してください。

フェールオーバー

セカンダリ データベースにフェールオーバーするには、次の操作を行います。

  1. バックアップ共有からコピーされていないバックアップ ファイルを、各セカンダリ サーバーのコピー先フォルダーにコピーします。

  2. 適用されていないトランザクション ログのバックアップを、各セカンダリ データベースに順に適用します。詳細については、「トランザクション ログ バックアップを適用する方法 (Transact-SQL)」を参照してください。

  3. プライマリ データベースにアクセスできる場合は、アクティブなトランザクション ログをバックアップし、そのログのバックアップをセカンダリ データベースに適用します。

    元のプライマリ サーバー インスタンスが破損していない場合は、WITH NORECOVERY を使用してプライマリ データベースのトランザクション ログの末尾をバックアップします。これにより、データベースは復旧状態で維持されるので、ユーザーは使用できなくなります。最終的には、置換プライマリ データベースからトランザクション ログのバックアップを適用することにより、このデータベースをロールフォワードできるようになります。

    詳細については、「トランザクション ログのバックアップ」を参照してください。

  4. セカンダリ サーバーが同期された後は、任意のサーバーのセカンダリ データベースを復旧し、そのサーバー インスタンスにクライアントをリダイレクトすることによって、そのサーバーにフェールオーバーできます。復旧によって、データベースは一貫性のある状態になり、オンラインになります。詳細については、「データを復元せずにデータベースをバックアップから復旧する方法 (Transact-SQL)」を参照してください。

    注意

    セカンダリ データベースを使用可能にするときは、そのデータベースのメタデータと元のプライマリ データベースのメタデータに一貫性があることを確認します。詳細については、「データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理」を参照してください。

  5. セカンダリ データベースを復旧した後は、そのデータベースが他のセカンダリ データベースのプライマリ データベースとして機能するように再構成できます。詳細については、「プライマリとセカンダリ間のロールの切り替え」を参照してください。

    他に使用できるセカンダリ データベースがない場合の詳細については、「ログ配布を有効にする方法 (SQL Server Management Studio)」または「ログ配布を有効にする方法 (Transact-SQL)」を参照してください。