虽然数据库可用性组(DAG)在数据库、服务器或网络发生故障时提供自动故障转移保护,但它需要监控以确保DAG正常工作,并在灾难发生时提供高可用性(HA)和站点弹性。
Test-ReplicationHealth是PowerShell cmdlet之一,可用于监视DAG复制运行状况、仲裁、网络组件、活动管理器、集群服务状态等。cmdlet适用于Microsoft Exchange Server 2010 SP1及后续版本。可以在DAG成员服务器上本地运行该命令,也可以远程运行该命令来监视DAG。
下面,您将学习如何使用Test-ReplicationHealth带有各种开关和参数的PowerShell cmdlet,可执行各种测试并监视DAG运行状况。
开始之前
要使用Test-ReplicationHealth cmlet,您必须具有监控角色分配。
您可以使用Exchange Management Shell (EMS)中的Exchange Admin Center (EAC)或PowerShell cmdlet为用户分配所需的角色。命令如下:
new - managementrole - assign -Role Monitoring -User Administrator
使用以下命令检查该管理员是否被分配了“Monitoring”角色。
Get-ManagementRoleAssignment -角色监控
如何在Exchange Server上使用Test-ReplicationHealth Cmdlet ?
您可以使用不带任何参数的Test-ReplicationHealth cmlet检查DAG的健康状况。
Test-ReplicationHealth
如果你看到结果地位通过了对于所有检查,DAG工作良好,不需要任何操作。但是,如果你看到结果与失败的状态时,您必须调查问题并修复它们以确保HA。
要了解输出中列出的每个服务以及它们在DAG中的角色,可以在EMS中运行以下命令:
Test-ReplicationHealth | Format-List Check*
该命令还可以带identity参数,用于指定和测试远程成员服务器的健康状态。例如,
Test-ReplicationHealth身份
如果看到错误或失败状态,请调查问题并在导致DAG失败之前修复它。
还可以使用以下命令检查所有服务器和数据库可用性组(DAG)的总体运行状况:
Get-DatabaseAvailabilityGroup | select -ExpandProperty:Servers | Test-ReplicationHealth
该命令显示所有服务及其状态。如果您的DAG中有3-4个或更多的Exchange服务器,这可能是一个很长的列表。在这种情况下,您可以使用以下命令列出有问题的服务和服务器或状态为“Failed”的服务。
Get-DatabaseAvailabilityGroup | Select -ExpandProperty:Servers | Test-ReplicationHealth | Where {$_.Result;Value -ne "Passed"}
既然您已经知道DAG成员服务器中存在一些错误,那么您可能会看到错误消息被截断。但是,要解决该错误,您必须知道有关该错误的完整信息。使用以下命令查看完整的错误信息。
Get-DatabaseAvailabilityGroup | Select -ExpandProperty:Servers | Test-ReplicationHealth | Where {$_.Result;Value -ne "Passed"} | Format-List
该命令以列表的形式显示错误的完整详细信息。
检查失败状态
如果下列检查之一位于失败的状态,服务器上的数据库可能由于不一致或损坏而面临丢失数据的风险。
检查 |
描述 |
DatabaseRedundancy |
验证数据库是否有足够的冗余。如果此检查失败,则意味着某些数据库有丢失数据的风险。 |
DatabaseAvailability |
验证数据库是否有足够的可用性。如果此检查失败,则意味着某些数据库有失去服务的风险。 |
DBCopySuspended |
检查是否有数据库副本处于'Suspended'状态。 |
DBCopyFailed |
检查是否有数据库副本处于“失败”状态。 |
在这种情况下,您可能需要使用EseUtil软恢复或硬恢复.请确保在对数据库使用硬恢复之前备份数据库,因为它可能清除不可恢复的数据,例如邮箱和邮件项,从而导致数据丢失。如果Soft Recovery失败,可以使用高级Exchange数据库恢复工具(如Stellar Repair for Exchange)直接在Exchange服务器上将邮箱从损坏或不一致的数据库修复并恢复到新数据库。您还可以将邮箱保存到PST或将其导出到Office 365租户,只需单击几下,即可保留原始文件夹结构和完整性。
结论
在本文中,您学习了如何使用Test-ReplicationHealthPowerShell cmdlet用于检查和监视Exchange Server 2010 SP1及更高版本上数据库可用性组(DAG)中的所有成员服务器。如果发现成员服务器存在问题,例如复制失败或数据库卸载失败,则可以使用EseUtil恢复和还原数据库。如果这不起作用或无法修复数据库,则可以使用Exchange恢复软件(例如用于Exchange的Stellar Repair)将邮箱从已卸载或损坏的Exchange数据库恢复并恢复到PST。也可以将它们直接导出到Exchange Server上新的或现有的挂载数据库。它还提供了从损坏、卸载或无法访问的Exchange数据库中恢复的单个或多个邮箱直接导出到Office 365或Exchange Online (Microsoft 365)的选项,只需单击几下即可。