データセンター ライセンス認証調整モードDatacenter Activation Coordination mode

データセンター ライセンス認証調整 (DAC) モードは、データベース可用性グループ (DAG) のプロパティです。DAC モードは既定では無効になっていますが、連続レプリケーションを使用する 2 つ以上のメンバーを持つすべての DAG で有効にする必要があります。サード パーティ レプリケーション モードを使用する DAG では DAC モードを有効にしないでください。ただし、サードパーティ ベンダーが指定した場合を除きます。Datacenter Activation Coordination (DAC) mode is a property of a database availability group (DAG). DAC mode is disabled by default but should be enabled for all DAGs with two or more members that use continuous replication. DAC mode shouldn't be enabled for DAGs that use third-party replication mode unless specified by the third-party vendor.

DAC モードは、DAG の起動時のデータベース マウント動作を制御するために使用されます。このコントロールは、データ センターのスイッチバック中にデータベース レベルでのスプリット ブレインの発生を防止するように設計されています。スプリット ブレイン はスプリット ブレイン現象とも呼ばれており、この状態になると、互いに通信できない同一 DAG の 2 つのメンバーに対してデータベースがアクティブ コピーとしてマウントされます。DAC モードでは、データベースをマウントする前に、DAG メンバーがデータベースをマウントするための許可を得る必要があるため、DAC モードを使用するとスプリット ブレインを防止できます。DAC mode is used to control the database mount on startup behavior of a DAG. This control is designed to prevent split brain from occurring at the database level during a datacenter switchback. Split brain, also known as split brain syndrome, is a condition that results in a database being mounted as an active copy on two members of the same DAG that are unable to communicate with one another. Split brain is prevented using DAC mode, because DAC mode requires DAG members to obtain permission to mount databases before they can be mounted.

たとえば、プライマリ データセンターに 2 つの DAG メンバーと監視サーバーが含まれ、第 2 のデータセンターに他の 2 つの DAG メンバーが含まれているシナリオを考えてみましょう。このシナリオでは、DAG は DAC モードに設定されていません。プライマリ データセンターの電源が失われ、第 2 のデータセンターの DAG がアクティブになります。やがて、プライマリ データセンターの電源が復旧し、電源障害が発生する前のクォーラムを持つプライマリ データセンターの DAG メンバーは、起動してデータベースをマウントします。第 2 のデータセンターとのネットワーク接続が切断された状態でプライマリ データセンターが復旧し、DAG が DAC モードに設定されていない場合、DAG 内のアクティブなデータベースはスプリット ブレイン状態になります。For example, when a primary datacenter contains two DAG members and the witness server, and a second datacenter contains two other DAG members, the DAG is not in DAC mode. The primary datacenter loses power, so you activate the DAG in the second datacenter. Eventually power to the primary datacenter is restored, and the DAG members in the primary datacenter, which had quorum before the power failure, will start up and mount their databases. Because the primary datacenter was restored without network connectivity to the second datacenter, and because the DAG was not in DAC mode, the active databases within the DAG enters a split brain condition.

DAC モードの機能How DAC mode works

DAC モードには、データセンターのアクティブ化調整プロトコル (DACP) というプロトコルが含まれています。DAC モードが有効であれば、DAG メンバーがクォーラムを持っていてもデータベースは自動的にマウントされません。代わりに DACP が使用され、DAG の現在の状態と、アクティブ マネージャーがデータベースのマウントを試みる必要があるかどうかが確認されます。DAC mode includes a protocol called Datacenter Activation Coordination Protocol (DACP). When DAC mode is enabled, DAG members won't automatically mount databases even if they have quorum. Instead DACP is used to determine the current state of the DAG and whether Active Manager should attempt to mount the databases.

DAC モードは、データベースをマウントするクォーラムのアプリケーション レベルと考えられているかもしれません。DACP の目的と機能を理解するには、DACP による処理を想定している第一のシナリオを理解することが重要です。上記の 2 つのデータ センター シナリオについて考えます。プライマリ データセンターで全面的な電源障害があるとします。この出来事で、すべてのサーバーと WAN がダウンしたため、スタンバイ データセンターをアクティブ化する決定が組織によって行われます。そのような回復シナリオのほぼすべてで、電源がプライマリ データセンターに回復したときに、WAN 接続が通常はすぐには回復しません。つまり、プライマリ データセンター内の DAG メンバーは電源がオンになりますが、それらはアクティブ化されたスタンバイ データセンター内の DAG メンバーと通信することができません。プライマリ データセンターには常に DAG クォーラム投票者の多数が含まれる必要があります。これは、電源が回復したときに、スタンバイ データセンター内の DAG メンバーへの WAN 接続がない場合でも、プライマリ データセンター内の DAG メンバーが多数を占めるため、クォーラムを保持します。これは、クォーラムが原因でこれらのサーバーがデータベースをマウントできる場合があり、その結果として、アクティブ化されたスタンバイ データセンターで現在マウントされている実際のアクティブ データベースと相違する可能性があるという問題です。You might think of DAC mode as an application level of quorum for mounting databases. To understand the purpose of DACP and how it works, it's important to understand the primary scenario it's intended to handle. Consider the two-datacenter scenario described above. Suppose there is a complete power failure in the primary datacenter. In this event, all of the servers and the WAN are down, so the organization makes the decision to activate the standby datacenter. In almost all such recovery scenarios, when power is restored to the primary datacenter, WAN connectivity is typically not immediately restored. This means that the DAG members in the primary datacenter will power up, but they won't be able to communicate with the DAG members in the activated standby datacenter. The primary datacenter should always contain the majority of the DAG quorum voters, which means that when power is restored, even in the absence of WAN connectivity to the DAG members in the standby datacenter, the DAG members in the primary datacenter have a majority and therefore have quorum. This is a problem because with quorum, these servers may be able to mount their databases, which in turn would cause divergence from the actual active databases that are now mounted in the activated standby datacenter.

DACP は、この問題に対処するために作成されました。アクティブ マネージャーは、サーバー上でアクティブとして割り当てられたローカル データベースのマウントが許可されているかどうかを DAG に通知するメモリ内のビット (0 または 1) を保存します。DAG を DAC モードで実行すると、アクティブ マネージャーの起動時に常にビットが 0 に設定されるため、データベースをマウントできません。DAC モードであるため、サーバーは認識している DAG のその他のメンバーすべてと通信を試みて、別の DAG メンバーを取得し、それにアクティブとして割り当てられているローカル データベースのマウント可否について答えを得る必要があります。答えは、DAG 内のその他のアクティブ マネージャーのビット設定形式でわかります。別のサーバーからそのビットの設定が 1 であると返答される場合、それはサーバーがデータベースのマウントを許可されており、起動中のサーバーがそのビットを 1 と設定してそのデータベースをマウントするという意味です。DACP was created to address this issue. Active Manager stores a bit in memory (either a 0 or a 1) that tells the DAG whether it's allowed to mount local databases that are assigned as active on the server. When a DAG is running in DAC mode, each time Active Manager starts up the bit is set to 0, meaning it isn't allowed to mount databases. Because it's in DAC mode, the server must try to communicate with all other members of the DAG that it knows to get another DAG member to give it an answer as to whether it can mount local databases that are assigned as active to it. The answer comes in the form of the bit setting for other Active Managers in the DAG. If another server responds that its bit is set to 1, it means servers are allowed to mount databases, so the server starting up sets its bit to 1 and mounts its databases.

ただし、プライマリ データセンターの電源障害から回復するときにサーバーが回復したが WAN 接続が回復していない場合、プライマリ データセンター内のすべての DAG メンバーに 0 の DACP ビット値が 0 になり、その結果、回復したプライマリ データセンター内でバックアップを開始しているサーバーのいずれもデータベースをマウントしません。理由は、それらのいずれも DACP ビット値が 1 の DAG メンバーと通信できないからです。But when you recover from a primary datacenter power outage where the servers are recovered but WAN connectivity has not been restored, all of the DAG members in the primary datacenter will have a DACP bit value of 0; and therefore none of the servers starting back up in the recovered primary datacenter will mount databases, because none of them can communicate with a DAG member that has a DACP bit value of 1.

2 つのメンバーを持つ DAG 用の DAC モードDAC mode for DAGs with two members

2 つのメンバーを持つ DAG には、アプリケーションレベルのスプリット ブレイン現象に対して DACP ビットのみを完全に保護することを妨げる固有の制限があります。DAG が 2 つのメンバーのみで構成されている場合、DAC モードでは、起動時にデータベースをマウントできるかどうかを確認する際に DAG の監視サーバーの起動時間も使用されます。監視サーバーの起動時間と、DACP ビットが 1 に設定された時間を比較します。DAGs with two members have inherent limitations that prevent the DACP bit alone from fully protecting against application-level split brain syndrome. For DAGs with only two members, DAC mode also uses the boot time of the DAG's witness server to determine whether it can mount databases on startup. The boot time of the witness server is compared to the time when the DACP bit was set to 1.

  • DACP ビットを設定した時間がミラーリング監視サーバーの起動時間より前の場合、システムによって DAG メンバーとミラーリング監視サーバーは同時に再起動されたと見なされ (おそらくプライマリ データセンターで停電が発生したため)、DAG メンバーはデータベースのマウントが許可されません。If the time the DACP bit was set is earlier than the boot time of the witness server, the system assumes that the DAG member and witness server were rebooted at the same time (perhaps because of power loss in the primary datacenter), and the DAG member isn't permitted to mount databases.

  • DACP ビットを設定した時間がミラーリング監視サーバーの起動時間より後の場合は、システムによって、他の理由で (おそらくメンテナンスを実施するためにスケジュールされた停止や、DAG メンバーに対して分離されたシステム クラッシュや停電のため) DAG メンバーが再起動されたと見なされます。DAG メンバーはデータベースのマウントが許可されます。If the time that the DACP bit was set is more recent than the boot time of the witness server, the system assumes that the DAG member was rebooted for some other reason (perhaps a scheduled outage in which maintenance was performed or perhaps a system crash or power loss isolated to the DAG member), and the DAG member is permitted to mount databases.

重要

DAG メンバーが起動時にアクティブなデータベースをマウントできるかどうかを決定する際に監視サーバーの起動時間が使用されるため、監視サーバーと唯一の DAG メンバーを同時に再起動しないようにする必要があります。このようにすると、DAG メンバーはスタートアップ時にデータベースをマウントできない状態のままになる場合があります。このような状況が発生した場合、DAG に対して Restore-DatabaseAvailabilityGroup コマンドレットを実行する必要があります。このコマンドレットを実行すると、DACP ビットがリセットされ、DAG メンバーはデータベースのマウントが許可されます。Because the witness server's boot time is used to determine whether a DAG member can mount its active databases on startup, you should never restart the witness server and the sole DAG member at the same time. Doing so may leave the DAG member in a state where it can't mount databases on startup. If this happens, you must run the Restore-DatabaseAvailabilityGroup cmdlet on the DAG. This resets the DACP bit and permits the DAG member to mount databases.

DAC モードのその他の利点Other benefits of DAC mode

アプリケーション レベルでのスプリットブレイン現象を防止するばかりでなく、DAC モードではデータセンターの切り替えを実行するために使用する組み込みのサイト復元コマンドレットを使用することもできます。これらには次のコマンドレットがあります。In addition to preventing split brain syndrome at the application level, DAC mode also enables the use of the built-in site resilience cmdlets used to perform datacenter switchovers. These include the following:

DAC モードでない DAG のデータセンターの切り替えを実行するには、Exchange ツールとクラスター管理ツールを組み合わせて使用する必要があります。Performing a datacenter switchover for DAGs that aren't in DAC mode involves using a combination of Exchange tools and cluster management tools. 詳細については、「データセンタースイッチオーバー」を参照してください。For more information, see Datacenter switchovers.

DAC モードの有効化Enabling DAC mode

DAC モードは、Exchange 管理シェルによってのみ有効化できます。具体的には、次の例に示すように、Set-DatabaseAvailabilityGroup コマンドレットを使用して DAC モードを有効にできます。DAC mode can be enabled only by using the Exchange Management Shell. Specifically, you can use the Set-DatabaseAvailabilityGroup cmdlet to enable DAC mode, as illustrated in the following example.

Set-DatabaseAvailabilityGroup -Identity DAG2 -DatacenterActivationMode DagOnly

前の例では、DAG2 で DAC モードが有効になりました。In the preceding example, DAG2 is enabled for DAC mode.

DAC モードの有効化については、「データベース可用性グループのプロパティを構成する」と「Set-DatabaseAvailabilityGroup」を参照してください。For more information about enabling DAC mode, see Configure database availability group properties and Set-DatabaseAvailabilityGroup.