导读:本期聚焦于坚哥创作的《Windows Server上如何部署Exchange DAG数据库可用性组?》,敬请观看详情。Exchange DAG也就是数据库可用性组,是微软为Exchange Server提供的高可用性方案,核心思路是把多台邮箱服务器加入同一个组,让数据库副本在多台服务器之间自动复制和切换。本文围绕Windows Server环境下DAG的部署展开,先讲清DAG的工作原理和见证服务器的作用,再逐步演示如何在Exchange管理中心完成DAG创建、添加成员、配置故障转移与数据库副本,同时说明网络要求、仲裁机制以及常见的复制失败排查思路。如果你正在为企业的Exchange邮件系统规划容灾,这篇内容可以帮你避开部署过程中的典型坑点。

Exchange Server作为企业内部使用最广泛的邮件系统之一,其可用性直接关系到日常办公。单台邮箱服务器一旦宕机,数据库无法挂载,邮件收发立刻中断。微软给出的标准答案就是DAG(Database Availability Group,数据库可用性组),它可以将多台邮箱服务器组合成一个逻辑单元,让数据库副本在成员服务器之间自动复制,主副本故障时自动切换到备用副本。本文将结合Windows Server环境,详细讲解DAG的原理、部署步骤和常见问题的排查方法。

Windows Server上如何部署Exchange DAG数据库可用性组?

一、DAG的工作原理与核心概念

DAG的本质是一个故障转移集群的简化版,但它不完全依赖Windows故障转移群集(WSFC)。在Exchange 2013及之后的版本中,DAG仍然会底层创建一个WSFC群集,只是管理界面被Exchange接管,管理员不需要手动操作群集资源。每个加入DAG的服务器最多可以承载100个数据库副本,而一个数据库在DAG内的副本数量最多为16份。

DAG的核心机制是日志传送和重放。活动数据库副本产生事务日志文件,日志首先写入本地,然后通过日志传送机制复制到其他被动副本所在的服务器,被动副本将日志重放到自己的数据库副本中,从而保持数据一致。这个过程是异步的,也就是说被动副本可能存在短暂的落后,这也是为什么在极端灾难场景下可能丢失少量最新邮件。

另一个关键概念是仲裁(Quorum)。DAG需要一个多数节点集来判定谁是合法的活动副本。当DAG成员为偶数时,必须引入见证服务器(Witness Server)来打破平局,防止出现脑裂(Split Brain)。见证服务器可以是域内任何一台运行Windows Server的机器,但推荐使用不承载Exchange邮箱角色的服务器,比如客户端访问服务器或其他成员服务器。

二、部署DAG的前置条件与网络准备

部署DAG之前需要确认几个硬性条件:所有成员服务器必须运行相同版本的Exchange Server,操作系统建议使用Windows Server 2016或更高版本;所有服务器必须加入同一个Active Directory域,且不能是域控制器;每台服务器需要至少两块网卡,一块用于MAPI通信(客户端访问),一块用于复制网络(日志复制流量),虽然单网卡也能工作,但生产环境强烈建议分离。

权限方面,创建DAG的账户需要是Exchange Organization Management角色组成员。如果使用见证服务器,Exchange Trusted Subsystem组需要对见证服务器拥有本地管理员权限,这个组默认存在于域中,可以通过下面的PowerShell命令把见证服务器的本地管理员组加入Exchange Trusted Subsystem:

# 在见证服务器上执行,将Exchange Trusted Subsystem加入本地管理员组
$exGroup = [ADSI]"WinNT://contoso/Exchange Trusted Subsystem,group"
$localAdmins = [ADSI]"WinNT://./Administrators,group"
$localAdmins.Add($exGroup.Path)

此外还要检查Windows防火墙规则,DAG成员之间需要放行的端口包括:MSExchangeRepl服务使用的TCP 64327(动态分配,也可以手动固定)、集群心跳端口UDP 3343以及RPC动态端口范围。如果服务器之间有网络设备隔离,务必先测试连通性,可以使用Test-ReplicationHealth命令验证复制通道是否正常。

三、创建DAG并添加成员服务器

DAG的创建可以通过Exchange管理中心的图形界面完成,也可以用命令行完成。命令行方式更适合批量操作和脚本化,这里以PowerShell为主进行演示。假设我们有两台邮箱服务器MBX01和MBX02,见证服务器为WITNESS01,创建DAG的命令如下:

# 创建一个名为DAG01的数据库可用性组
New-DatabaseAvailabilityGroup -Name DAG01 `
    -WitnessServer WITNESS01 `
    -WitnessDirectory C:\DAGWitness `
    -DatabaseAvailabilityGroupIpAddresses 192.168.10.50

参数中的WitnessDirectory是见证服务器上存放仲裁文件的目录,系统会自动创建。DatabaseAvailabilityGroupIpAddresses为DAG分配一个静态IP地址,如果环境是纯IPv6或者使用DHCP,可以填写参数值AUTO。创建完成后,把两台邮箱服务器加入DAG:

# 向DAG添加成员服务器
Add-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer MBX01
Add-DatabaseAvailabilityGroupServer -Identity DAG01 -MailboxServer MBX02

添加过程需要几分钟,期间Exchange会在底层创建WSFC群集对象。如果这一步失败,最常见的原因是WitnessDirectory权限不足或者C:\Windows\System32下的集群组件被安全策略限制,可以查看系统事件日志中的FailoverClustering来源的报错来定位。加入成功后,用Get-DatabaseAvailabilityGroup DAG01 -Status | fl Name,Servers,WitnessServer,AlternateWitnessServer确认成员列表和见证服务器状态。

四、添加数据库副本与故障转移验证

DAG就绪后,接下来为数据库添加副本。假设数据库DB01当前位于MBX01上,执行下面的命令在MBX02上创建一份被动副本:

# 在MBX02上添加DB01的副本
Add-MailboxDatabaseCopy -Identity DB01 -MailboxServer MBX02 -ActivationPreference 2

# 查看副本状态和内容索引状态
Get-MailboxDatabaseCopyStatus DB01 | fl Name,Status,CopyQueueLength,ReplayQueueLength,ContentIndexState

ActivationPreference指定激活优先级,数字越小优先级越高。副本添加后需要等待初始种子设定(Seeding)完成,即MBX02通过网络完整复制一份数据库文件和日志到自己的路径下。种子设定耗时取决于数据库大小和网络带宽,也可以用Update-MailboxDatabaseCopy命令手动重新做种子。健康状态下,Status应显示Healthy,CopyQueueLength和ReplayQueueLength应接近于零,ContentIndexState为Healthy表示搜索索引也已同步。

部署完成后必须做一次故障转移演练。可以先模拟MBX01宕机,观察数据库是否自动切换到MBX02,也可以手动执行移动:

# 手动将DB01激活到MBX02
Move-ActiveMailboxDatabase -Identity DB01 -ActivateOnServer MBX02 -MountDialOverride:None

# 检查DAG整体复制健康度
Test-ReplicationHealth -Server MBX02
Get-MailboxDatabaseCopyStatus * | ft Name,Status,CopyQueueLength -AutoSize

切换过程中客户端会经历短暂断开,Outlook会自动重连,无需用户干预。建议每季度做一次完整的故障转移演练,并记录切换耗时,作为容灾指标的参考数据。

五、常见问题排查与运维建议

DAG日常运维中最常见的问题是副本状态长时间处于Failed或ServiceDown。排查思路可以按顺序进行:先看Test-ReplicationHealth的输出定位失败的具体检查项,再检查MSExchangeRepl服务是否运行,然后确认网络是否丢包,尤其是复制网络的MTU配置不一致会导致日志复制卡顿。日志文件默认存放在数据库所在目录,路径中类似E:\ExchangeDB\DB01的位置如果磁盘空间不足,重放队列会持续增长。

另一个高频问题是见证服务器失效导致DAG离线。当偶数成员的DAG失去见证服务器时,剩余节点无法达成仲裁,所有数据库都会卸载。解决办法是提前配置备用见证服务器:

# 配置备用见证服务器
Set-DatabaseAvailabilityGroup -Identity DAG01 `
    -AlternateWitnessServer WITNESS02 `
    -AlternateWitnessDirectory C:\DAGWitnessAlt

运维层面还有两点建议:一是为DAG配置数据中心激活协调模式(DAC Mode),防止跨机房切换时旧站点数据库意外上线;二是定期用Get-MailboxDatabaseCopyStatus做巡检并把结果输出到日志,可以配合Windows计划任务实现自动化监控,一旦发现队列长度异常增长就及时告警。做好这些细节,DAG才能真正发挥它高可用架构的价值。

Exchange DAG数据库可用性组Windows Server修改时间:2026-09-12 20:12:39

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260912/55528.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。