Always On 可用性グループを操作する


このページでは、SQL Server の Always-On 可用性グループの概要と、フェイルオーバーとデータ復旧のシナリオで Datastream が Always-On 可用性グループをサポートする方法について説明します。

Always On 可用性グループの概要

SQL Server では、Always On 可用性グループは、障害復旧シナリオに備えてデータベースを準備できる高可用性ソリューションです。

Always On 可用性グループは、ビジネスのデータベースの可用性を最大化します。可用性グループは、選択したデータベース セット(可用性データベース)のレプリケートされた環境をサポートします。各グループには、読み取り / 書き込みタスク用のプライマリ データベースの 1 セットと、対応するセカンダリ データベースの最大 8 セットが含まれます。必要に応じて、セカンダリ データベースで読み取り専用アクセスまたはバックアップ オペレーションを許可できます。

Always On 可用性グループの詳細については、SQL Server のドキュメントの Always On 可用性グループとはをご覧ください。

SQL Server インスタンスの Always On 可用性グループの前提条件については、SQL Server のドキュメントをご覧ください。

Always On 可用性グループで使用するように Datastream を構成する

Datastream は、テーブル変更の CDC メソッドで同期 commit 可用性モードをサポートしています。このモードでは、データの同期が停止するまで、セカンダリ データベースは対応するプライマリと同期されたままになります。トランザクションの確認は、セカンダリ レプリカが受信したトランザクション ログレコードをディスクに書き込む場合にのみ、クライアントに送信されます。

可用性モードの詳細については、Always On 可用性グループの可用性モードの違いをご覧ください。

Always On 可用性グループで使用するように SQL Server インスタンスを構成するには、SQL Server エージェントを有効にして、フェイルオーバー時にログをキャプチャし、クリーンアップ ジョブを実行する必要があります。これを行う前に、CDC エージェント ジョブのステップを変更して、現在のレプリカが実際にプライマリかどうかを確認する必要があります。これは sys.fn_hadr_is_primary_replica 関数を使用して行います。

次のコマンドを使用してインスタンスを設定します。

  -- Check if the current replica is a primary for the corresponding database.
  USE [DATABASE_NAME];
  DECLARE @DatabaseName SYSNAME = DB_NAME();
  IF (SELECT sys.fn_hadr_is_primary_replica(@DatabaseName)) = 1
  BEGIN
  -- If the replica isn't a primary, the code block that follows is skipped
  EXECUTE sys.sp_cdc_add_job @job_type = 'capture';
  EXECUTE sys.sp_cdc_add_job @job_type = 'cleanup';
  END

次のステップ