適用対象:
2016
2019
サブスクリプション エディション
Datacenter Activation Coordination (DAC) モードは、データベース可用性グループ (DAG) のプロパティです。 DAC モードは既定で無効になっていますが、連続レプリケーションを使用する 2 つ以上のメンバーを持つすべての DAG に対して有効にする必要があります。 サード パーティ ベンダーによって指定されていない限り、サード パーティのレプリケーション モードを使用する DAG に対して DAC モードを有効にしないでください。
DAC モードは、DAG の起動時のデータベース マウント動作を制御するために使用されます。 このコントロールは、データ センターのスイッチバック中にデータベース レベルでのスプリット ブレインの発生を防止するように設計されています。 スプリット ブレイン はスプリット ブレイン現象とも呼ばれており、この状態になると、互いに通信できない同一 DAG の 2 つのメンバーに対してデータベースがアクティブ コピーとしてマウントされます。 DAC モードでは、データベースをマウントする前に、DAG メンバーがデータベースをマウントするための許可を得る必要があるため、DAC モードを使用するとスプリット ブレインを防止できます。
たとえば、プライマリ データセンターに 2 つの DAG メンバーと監視サーバーが含まれていて、2 番目のデータセンターに 2 つの他の DAG メンバーが含まれている場合、DAG は DAC モードではありません。 プライマリ データセンターの電源が切断されたため、2 つ目のデータセンターで DAG をアクティブ化します。 最終的に、プライマリ データセンターの電源が復元され、停電前にクォーラムを持っていたプライマリ データセンターの DAG メンバーが起動し、データベースをマウントします。 プライマリ データセンターは 2 番目のデータセンターへのネットワーク接続なしで復元されたうえ、DAG が DAC モードではなかったため、DAG 内のアクティブなデータベースはスプリット ブレイン状態になります。
DAC モードの機能
DAC モードには、データセンターのアクティブ化調整プロトコル (DACP) というプロトコルが含まれています。 DAC モードが有効であれば、DAG メンバーがクォーラムを持っていてもデータベースは自動的にマウントされません。 代わりに DACP が使用され、DAG の現在の状態と、アクティブ マネージャーがデータベースのマウントを試みる必要があるかどうかが確認されます。
DAC モードは、データベースをマウントするためのクォーラムのアプリケーション レベルと考えることができます。 DACP の目的とそのしくみを理解するには、DACP の処理を意図した主なシナリオを理解することが重要です。 上記の 2 つのデータセンターのシナリオを考えてみます。 プライマリ データセンターで完全な電源障害が発生した場合を考えます。 このイベントでは、すべてのサーバーと WAN がダウンしているため、organization はスタンバイ データセンターをアクティブ化することを決定します。 このような復旧シナリオのほとんどすべてにおいて、プライマリ データセンターの電源が復旧しても、WAN 接続はすぐには復旧しないことがほとんどです。 つまり、プライマリ データセンター内の DAG メンバーは電源が入りますが、アクティブ化されたスタンバイ データセンター内の DAG メンバーと通信できなくなります。 プライマリ データセンターには必ず DAG クォーラムの投票者の過半数を含める必要があります。つまり、電源が復旧すると、スタンバイ データセンター内の DAG メンバーへの WAN 接続がない場合でも、プライマリ データセンターの DAG メンバーが過半数を占めるため、クォーラムがあります。 これは、クォーラムを使用すると、これらのサーバーがデータベースをマウントできる可能性があり、その結果、アクティブ化されたスタンバイ データセンターにマウントされている実際のアクティブなデータベースと逸脱する可能性があるため、これが問題になります。
DACP は、この問題に対処するために作成されました。 アクティブ マネージャーは、サーバー上でアクティブとして割り当てられたローカル データベースのマウントが許可されているかどうかを DAG に通知するメモリ内のビット (0 または 1) を保存します。 DAG を DAC モードで実行すると、アクティブ マネージャーの起動時に常にビットが 0 に設定されるため、データベースをマウントできません。 DAC モードであるため、サーバーは認識している DAG のその他のメンバーすべてと通信を試みて、別の DAG メンバーを取得し、それにアクティブとして割り当てられているローカル データベースのマウント可否について答えを得る必要があります。 答えは、DAG 内のその他のアクティブ マネージャーのビット設定形式でわかります。 別のサーバーからそのビットの設定が 1 であると返答される場合、それはサーバーがデータベースのマウントを許可されており、起動中のサーバーがそのビットを 1 と設定してそのデータベースをマウントするという意味です。
ただし、サーバーは回復したものの WAN 接続が復元されていないプライマリ データセンターの停電から回復した場合、プライマリ データセンター内のすべての DAG メンバーの DACP ビット値は 0 になります。したがって、どのサーバーも DACP ビット値が 1 の DAG メンバーと通信できないため、復元されたプライマリ データセンターでバックアップを開始するどのサーバーもデータベースをマウントしません。
2 つのメンバーを持つ DAG 用の DAC モード
2 つのメンバーを持つ DAG には、アプリケーションレベルのスプリット ブレイン現象に対して DACP ビットのみを完全に保護することを妨げる固有の制限があります。 DAG が 2 つのメンバーのみで構成されている場合、DAC モードでは、起動時にデータベースをマウントできるかどうかを確認する際に DAG の監視サーバーの起動時間も使用されます。 監視サーバーの起動時間と、DACP ビットが 1 に設定された時間を比較します。
DACP ビットを設定した時間がミラーリング監視サーバーの起動時間より前の場合、システムによって DAG メンバーとミラーリング監視サーバーは同時に再起動されたと見なされ (おそらくプライマリ データセンターで停電が発生したため)、DAG メンバーはデータベースのマウントが許可されません。
DACP ビットを設定した時間がミラーリング監視サーバーの起動時間より後の場合は、システムによって、他の理由で (おそらくメンテナンスを実施するためにスケジュールされた停止や、DAG メンバーに対して分離されたシステム クラッシュや停電のため) DAG メンバーが再起動されたと見なされます。DAG メンバーはデータベースのマウントが許可されます。
重要
DAG メンバーが起動時にアクティブなデータベースをマウントできるかどうかを決定する際に監視サーバーの起動時間が使用されるため、監視サーバーと唯一の DAG メンバーを同時に再起動しないようにする必要があります。 このようにすると、DAG メンバーはスタートアップ時にデータベースをマウントできない状態のままになる場合があります。 このような状況が発生した場合、DAG に対して Restore-DatabaseAvailabilityGroup コマンドレットを実行する必要があります。 このコマンドレットを実行すると、DACP ビットがリセットされ、DAG メンバーはデータベースのマウントが許可されます。
DAC モードのその他の利点
アプリケーション レベルでのスプリットブレイン現象を防止するばかりでなく、DAC モードではデータセンターの切り替えを実行するために使用する組み込みのサイト復元コマンドレットを使用することもできます。 これらには次のコマンドレットがあります。
DAC モードでない DAG のデータセンターの切り替えを実行するには、Exchange ツールとクラスター管理ツールを組み合わせて使用する必要があります。 詳細については、「Datacenter の切り替え」を参照してください。
DAC モードの有効化
DAC モードは、Exchange 管理シェルによってのみ有効化できます。 具体的には、次の例に示すように、Set-DatabaseAvailabilityGroup コマンドレットを使用して DAC モードを有効にできます。
Set-DatabaseAvailabilityGroup -Identity DAG2 -DatacenterActivationMode DagOnly
前の例では、DAG2 で DAC モードが有効になりました。
DAC モードの有効化については、「データベース可用性グループのプロパティを構成する」と「Set-DatabaseAvailabilityGroup」を参照してください。