Exchange Serverのデータセンター アクティブ化調整モード

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 の目的と動作を理解するには、処理する主なシナリオを理解することが重要です。 上で説明した 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 ツールとクラスター管理ツールを組み合わせて使用する必要があります。 詳細については、「 データセンターの切り替え」を参照してください。

DAC モードの有効化

DAC モードは、Exchange 管理シェルによってのみ有効化できます。 具体的には、次の例に示すように、Set-DatabaseAvailabilityGroup コマンドレットを使用して DAC モードを有効にできます。

Set-DatabaseAvailabilityGroup -Identity DAG2 -DatacenterActivationMode DagOnly

前の例では、DAG2 で DAC モードが有効になりました。

DAC モードの有効化については、「データベース可用性グループのプロパティを構成する」と「Set-DatabaseAvailabilityGroup」を参照してください。