了解数据库可用性组         

数据库可用性组 (DAG) 是内置于 Microsoft Exchange Server 2010 中的高可用性和站点恢复框架的基础组件。DAG 是一组邮箱服务器(最多可包含 16 个邮箱服务器),其中承载了一组数据库,可提供从影响单个服务器或数据库的故障中自动执行数据库级恢复的功能。

DAG 是邮箱数据库复制、数据库和服务器切换、故障转移以及名为“活动管理器”的内部组件的边界。活动管理器是一个 Exchange 2010 组件,负责管理在 DAG 中的每个服务器上运行的切换和故障转移。有关 Active Manager 的详细信息,请参阅了解活动管理器。

DAG 中的任何服务器可以承载来自 DAG 中任何其他服务器的邮箱数据库副本。将服务器添加到 DAG 后,此服务器与 DAG 中的其他服务器协同工作,提供从影响邮箱数据库的故障(如磁盘故障或服务器故障)中自动执行恢复的功能。

 

数据库可用性组生命周期

DAG 可以利用 Exchange 2010 名为“增量部署”的功能,该功能可以在安装 Exchange 后部署所有邮箱服务器和数据库的服务和数据可用性。在部署 Exchange 2010 后,您可以创建 DAG,将邮箱服务器添加到 DAG,然后在 DAG 成员之间复制邮箱数据库。

通过使用 New-DatabaseAvailabilityGroup cmdlet 创建 DAGDAG 最初创建时是 Active Directory 中的一个空对象。该目录对象用于存储 DAG 的相关信息,比如服务器成员身份信息。当管理员将第一个服务器添加到 DAG 时,将为 DAG 自动创建故障转移群集。此外,还将启动监视服务器的网络或故障的基础结构。然后,使用故障转移群集检测信号机制和群集数据库来跟踪和管理有关 DAG 可能快速更改的信息,比如数据库装入状态、复制状态和最后装入位置。

在创建过程中,会为 DAG 指定一个唯一名称,并分配一个或多个静态 IP 地址,或配置为使用动态主机配置协议 (DHCP)。您可以通过使用 DatabaseAvailabilityGroupIPAddresses 参数指定单个 IP 地址或逗号分隔的 IP 地址列表。

请考虑包含三个服务器的 DAG;两个服务器(EX1 EX2)在同一子网 (10.0.0.0) 上,第三个服务器 (EX3) 位于另一子网 (192.168.0.0) 上。管理员运行以下命令:

 

New-DatabaseAvailabilityGroup -Name DAG1 -DatabaseAvailabilityGroupIPAddresses 10.0.0.5,192.168.0.5

Add-DatabaseAvailabilityGroupServer -Identity DAG1 -MailboxServer EX1

Add-DatabaseAvailabilityGroupServer -Identity DAG1 -MailboxServer EX2

Add-DatabaseAvailabilityGroupServer -Identity DAG1 -MailboxServer EX3

 注意:将 DatabaseAvailabilityGroupIPAddresses 参数配置为值 0.0.0.0 会将 DAG(群集)配置为将 DHCP 用作其 IP 地址或 IP 地址资源。

EX1 添加到 DAG 后会为 DAG1 创建群集。在创建群集期间,Add-DatabaseAvailabilityGroupServer cmdlet 将检索为 DAG 配置的 IP 地址,并忽略与在 EX1 上找到的任何子网不匹配的 IP 地址。在此示例中,将使用 IP 地址 10.0.0.5 创建 DAG1 的群集,而忽略 192.168.0.5

然后将添加 EX2Add-DatabaseAvailabilityGroupServer cmdlet 再次检索为 DAG 配置的 IP 地址。群集的 IP 地址没有更改,因为 EX2 EX1 位于同一子网。

然后将添加 EX3Add-DatabaseAvailabilityGroupServer cmdlet 再次检索为 DAG 配置的 IP 地址。因为与 192.168.0.5 匹配的子网在 EX3 上,所以地址 192.168.0.5 将作为 IP 地址资源添加到群集组中。此外,会为每个 IP 地址资源的网络名称资源自动配置 OR 依存关系。将群集组移动到 EX3 后,群集将使用 192.168.0.5 地址。

当网络名称资源进入联机状态时,Windows 故障转移群集会在域名系统 (DNS) 中注册群集的 IP 地址。此外,还会在 Active Directory 中创建群集网络对象 (CNO)。群集的名称、IP 地址和 CNO 将只由系统在内部使用,以保护 DAG 安全以及进行内部通信。管理员和最终用户不需要出于任何原因对接或连接 DAG 名称或 IP 地址。

除了配置名称以及一个或多个 IP 地址,还会将 DAG 配置为使用见证服务器和见证目录。见证服务器和见证目录可以由系统自动指定,还可以由管理员手动指定。

默认情况下,DAG 旨在使用内置连续复制功能在 DAG 中的服务器之间复制邮箱数据库。如果您使用的是在 Exchange 2010 中支持第三方复制 API 的第三方数据复制,则必须使用 New-DatabaseAvailabilityGroup cmdlet ThirdPartyReplication 参数在第三方复制模式中创建 DAG。启用此模式后不能将其禁用。

创建 DAG 后,可以将邮箱服务器添加到 DAG 中。将第一个服务器添加到 DAG 后,将形成群集以供 DAG 使用。DAG 限制使用 Windows 故障转移群集技术,即群集检测信号、群集网络以及群集数据库(用于存储更改的或可以快速更改的数据,例如数据库状态从活动更改为被动或相反的情况,或从装入更改为卸除或相反的情况)。每个后续服务器在添加到 DAG 时,都会加入到基础群集(而且系统会根据需要自动调整群集的仲裁模型),并会添加到 Active Directory 中的 DAG 对象。

在将邮箱服务器添加到 DAG 后,可以配置各种 DAG 属性,例如对 DAG 中的数据库复制使用网络加密还是使用网络压缩。您还可以根据需要配置 DAG 网络和创建附加 DAG 网络。

将成员添加到 DAG 并配置 DAG 后,可以将每个服务器上的活动邮箱数据库复制到其他 DAG 成员中。在创建邮箱数据库副本后,可以使用各种内置监视工具监视副本的运行状况和状态。此外,还可以根据需要执行数据库和服务器切换。

2 使用数据库可用性组实现高可用性

为了说明 DAG 如何提供邮箱数据库的高可用性,请考虑以下示例,其中使用的 DAG 有五个成员。下图说明了此 DAG

数据库可用性组

在上图中,绿色数据库为活动邮箱数据库副本,而蓝色数据库为被动邮箱数据库副本。在此示例中,数据库副本没有跨每个服务器进行镜像,而是分布到多个服务器。这可以确保 DAG 中不存在两个包含同一组数据库副本的服务器,因此为 DAG 提供了更大的故障应对能力,包括其他组件因定期维护而关闭时发生的故障。

请考虑使用前面的示例 DAG 的以下方案,其中说明了对多个数据库故障和服务器故障的弹性。

最初,所有数据库和服务器都正常运行。一位管理员需要在 EX2 上安装某些操作系统更新。该管理员执行服务器切换,这会激活其他邮箱服务器上的 DB4 副本。服务器切换是由管理员执行的一项任务,将所有活动邮箱数据库副本从其当前服务器移动到 DAG 中的一个或多个其他邮箱服务器,以应对当前服务器的计划中断。管理员可以通过运行 Exchange 命令行管理程序中的以下命令快速执行服务器切换。

Move-ActiveMailboxDatabase -Server EX2

在此示例中,EX2 (DB4) 上只有一个活动的邮箱数据库,所以仅移动了一个活动邮箱数据库副本。在这种情况下,通过省略上述命令中的 ActivateOnServer 参数,管理员选择使系统尽可能选择最佳的新活动副本,系统选择了 EX5 上的副本,如下图所示。

有一台服务器脱机(用于维护)的数据库可用性组

在为 EX2 完成日程维护后,管理员使服务器重新进入联机状态。在 EX2 启动后,会通知 DAG 的其他成员,并且承载在 EX2 上的 DB1DB4 DB5 的副本会自动与每个数据库的活动副本重新进行同步。下图对此进行了说明。

包含已还原服务器的数据库可用性组重新同步其数据库副本

在将 EX3 中出现故障的硬件组件替代为新组件后,EX3 将重新联机。与 EX2 一样,在 EX3 启动后,会通知 DAG 的其他成员,并且承载在 EX3 上的 DB2DB3 DB4 的副本会自动与每个数据库的活动副本重新进行同步。下图对此进行了说明。

包含已修复服务器的数据库可用性组重新同步其数据库副本