Exchange Server 中的数据中心激活协调模式

数据中心激活协调 (DAC) 模式是数据库可用性组 (DAG) 的属性。 DAC 模式默认处于禁用状态,但应该为具有两个或更多使用连续复制的成员的所有 DAG 启用该模式。 不应为采用第三方复制模式的 DAG 启用 DAC 模式,除非第三方供应商指定这样做。

DAC 模式用于控制 DAG 启动时的数据库装载行为。 此控件旨在防止在数据中心切换期间在数据库级别发生拆分大脑。 拆分脑(也称为分裂脑综合征)是导致数据库作为活动副本装载在同一 DAG 的两个成员上无法相互通信的情况。 使用 DAC 模式会阻止拆分大脑,因为 DAC 模式要求 DAG 成员先获得装载数据库的权限,然后才能装载数据库。

例如,当主数据中心包含两个 DAG 成员和见证服务器,另一个数据中心包含另外两个 DAG 成员时,DAG 不处于 DAC 模式。 在主数据中心断电后,你在辅助数据中心内激活了 DAG。 最终,主数据中心恢复了供电,主数据中心的 DAG 成员在断电前已拥有仲裁,将启动并装载数据库。 由于主数据中心在未连接到第二个数据中心的情况下还原,并且 DAG 未处于 DAC 模式,因此 DAG 中的活动数据库进入拆分脑部状态。

DAC 模式的工作原理

DAC 模式包含数据中心激活协调协议 (DACP)。 启用 DAC 模式后,即使 DAG 成员已拥有仲裁,也不会自动装载数据库。 而是由 DACP 确定 DAG 的当前状态,以及活动管理器是否应尝试装载数据库。

可以将 DAC 模式视为用于装载数据库的仲裁的应用程序级别。 若要了解 DACP 的用途及其工作原理,请务必了解它打算处理的主要方案。 请考虑上述双数据中心方案。 假设主数据中心发生完全电源故障。 在这种情况下,所有服务器和 WAN 都已关闭,因此组织决定激活备用数据中心。 在几乎所有此类恢复方案中,当电源还原到主数据中心时,WAN 连接通常不会立即恢复。 这意味着主数据中心中的 DAG 成员将通电,但他们将无法与激活的备用数据中心中的 DAG 成员通信。 主数据中心应始终包含大多数 DAG 仲裁选民,这意味着在恢复电源时,即使没有与备用数据中心中的 DAG 成员建立 WAN 连接,主数据中心中的 DAG 成员占多数,因此具有仲裁。 这是一个问题,因为对于仲裁,这些服务器可能能够装载其数据库,这反过来又会导致与现在装载在激活的备用数据中心的实际活动数据库背离。

创建 DACP 就是为了解决此问题。 活动管理器在内存中存储一个数位(0 或 1),该数位告诉 DAG 是否允许装入服务器上以活动状态分配的本地数据库。 当 DAG 正以 DAC 模式运行时,活动管理器每次启动时,该数位都被设置为 0,表示不允许装入数据库。 因为 DAG 处于 DAC 模式,所以服务器必须尝试与其知道的 DAG 的其他所有成员通信,以便获取另一个 DAG 成员,告诉它是否可以装入以活动状态分配给它的本地数据库。 答案将以 DAG 中其他活动管理器的数位设置形式提供。 如果另一个服务器将其数位设置为 1 进行响应,这意味着服务器允许装入数据库,这样服务器启动时将其数位设置为 1,并装入其数据库。

但是,如果主数据中心停电,其中服务器已恢复,但 WAN 连接尚未恢复,则主数据中心中的所有 DAG 成员的 DACP 位值将为 0:因此,在恢复的主数据中心启动备份的服务器都不会装载数据库,因为它们都无法与 DACP 位值为 1 的 DAG 成员通信。

具有两个成员的 DAG 的 DAC 模式

具有两个成员的 DAG 的固有限制会导致仅靠 DACP 位无法完全防止应用程序级网络分区症状。 对于仅有两个成员的 DAG,DAC 模式也会使用 DAG 见证服务器的启动时间来确定是否可以在启动时装入数据库。 会将见证服务器的启动时间与 DACP 位设置为 1 时的时间进行比较。

  • 如果设置 DACP 位的时间早于见证服务器的启动时间,则系统会假设 DAG 成员和见证服务器同时重新启动(可能是因为主数据中心断电),不允许 DAG 成员装入数据库。

  • 如果设置 DACP 位的时间晚于见证服务器的启动时间,则系统会假设 DAG 成员由于某种其他原因(可能是用于执行维护的计划中断,或可能是与 DAG 成员无关的系统崩溃或断电)而重新启动,允许 DAG 成员装入数据库。

重要

因为见证服务器的启动时间用于确定 DAG 成员是否可以在启动时装入活动数据库,所以绝不能同时重新启动见证服务器和唯一的 DAG 成员。 这样做可能会使 DAG 成员处于无法在启动时装入数据库的状态。 如果发生这种情况,则必须在 DAG 上运行 Restore-DatabaseAvailabilityGroup cmdlet。 这可重置 DACP 位并允许 DAG 成员装入数据库。

DAC 模式的其他好处

除了在应用程序级防止网络分区症状之外,通过 DAC 模式还可以使用用于执行数据中心切换的内置站点恢复 cmdlet。 其中包括:

为不处于 DAC 模式的 DAG 执行数据中心切换需要结合使用 Exchange 工具和群集管理工具。 有关详细信息,请参阅 数据中心切换

启用 DAC 模式

只能通过使用 Exchange 命令行管理程序启用 DAC 模式。 具体来说,您可以使用 Set-DatabaseAvailabilityGroup cmdlet 启用 DAC 模式,如以下示例所示。

Set-DatabaseAvailabilityGroup -Identity DAG2 -DatacenterActivationMode DagOnly

在前面的示例中,为 DAG2 启用了 DAC 模式。

有关启用 DAC 模式的详细信息,请参阅配置数据库可用性组属性Set-DatabaseAvailabilityGroup