跨站点DAG的优化两例
出处:www.canway.net/ 作者:晏中明 时间:2016-6-15 15:35:55
【摘要】
跨站点DAG是许多大型企业采用的一种邮箱高可用方案,当企业遇到无法避免的区域性灾难问题时,跨站点DAG可以确保企业的服务高可用和数据安全,然而跨站点DAG相比单站点DAG存在些许技术点需要考虑,本文将探讨部分。
【正文】
某企业在总部和分支建立了两站点DAG,总部两台后端服务器(MBS1\MBS2)用作主要的邮件流进出,分支一台邮箱服务器(MBS3)用作跨站点灾备,由于总部和分支间的广域网带宽有限,工作高峰期MBS3上会累计大量日志队列,但在非工作时间段该队列会逐渐消除。
场景一、防止备份站点的数据库副本自动激活。若数据库意外的切换到了MBS3上面,且在工作高峰期累计了大量队列,管理员将无法进行数据库切换从而影响用户体验。
该场景可以通过为服务器配置激活策略来限制数据库仅在同站点内进行切换或者避免数据库切换到某一个具体的数据库副本。
服务器层面:
将服务器 MBS3 上的数据库副本配置为阻止激活,使用该命令可以防止备份站点内的数据库副本自动激活;
Set-MailboxServer -Identity MBS3 -DatabaseCopyAutoActivationPolicy Blocked
将服务器 MBS1、MBS2 上的数据库副本配置为只在站点内激活,使用该命令可以防止生产站点内的数据库切换到备份站点服务器;
Set-MailboxServer -Identity MBS2 -DatabaseCopyAutoActivationPolicy IntrasiteOnly
Note:以上两种方式效果一致,选择一种即可。
若需取消上述设置:
Set-MailboxServer -Identity MBS3 -DatabaseCopyAutoActivationPolicy Unrestricted
数据库层面:
阻止服务器 MBS3 上数据库 DB1 的副本激活,ActivationOnly开关指定仅挂起对邮箱数据库副本的激活这个操作而不影响副本的复制;
Suspend-MailboxDatabaseCopy -Identity DB1\MBX3 -ActivationOnly
本示例将恢复服务器MBX2 上数据库 DB1 的副本激活。
Resume-MailboxDatabaseCopy-Identity DB1\MBX2
场景二、总部断电,所有副本都断开连接,这时候活动副本切换到灾备站点。当主数据中心恢复供电时(这时服务器恢复,但站点间WAN 连接尚未恢复),主数据中心的数据库会自动Mount,就会出现总部和分支服务器都mount数据库的冲突,该故障称为了网络分区错误。
通过启用DAC模式可以避免这种错误:
启用DAC模式:
Set-DatabaseAvailabilityGroup-Identity DAG2 -DatacenterActivationMode DagOnly
关闭DAC模式:
Set-DatabaseAvailabilityGroup -Identity DAG2-DatacenterActivationMode Off
活动管理器在内存中存储一个数位(0 或 1),该数位告诉 DAG 是否允许装入服务器上以活动状态分配的本地数据库。当 DAG 正以 DAC 模式运行时,活动管理器每次启动时,该数位都被设置为 0,表示不允许装入数据库。若 DAG 处于 DAC 模式,服务器必须尝试与其知道的 DAG 的其他所有成员通信,以便获取另一个 DAG 成员,告诉它是否可以装入以活动状态分配给它的本地数据库。答案将以 DAG 中其他活动管理器的数位设置形式提供。如果另一个服务器将其数位设置为 1 进行响应,这意味着服务器允许装入数据库,这样服务器启动时将其数位设置为 1,并装入其数据库。
回到前文所述故障,灾备站点挂载活动节点之后,活动管理器的该参数就会设置为1,而主数据中心的参数为0 ,主数据中心的副本在完成与灾备站点的通信之前是不会自动挂载的,而一旦完成通信,灾备站点返回的值也会阻止主数据中心挂载数据库,因此可以避免网络分区错误。