监视连续复制
适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1
上一次修改主题: 2007-08-22
Microsoft Exchange Server 2007 Service Pack 1 (SP1) 为监视连续复制环境引入了新功能和改进功能。这些更改增强了 Microsoft Exchange Server 2007 的正式发布 (RTM) 版中的群集报告功能,还包含为主动监视连续复制环境设计的附加功能。具体来说,Exchange 2007 SP1 引入了 Get-StorageGroupCopyStatus cmdlet 的增强功能,添加了名为 Test-ReplicationHealth 的新 cmdlet,还提高了传输转储程序包含的丢失窗口的可见度。除了使用这些 cmdlet 监视连续复制的运行状况外,还可以使用 Microsoft Exchange 复制服务发布的几种性能计数器。
SP1 中对 Get-StorageGroupCopyStatus Cmdlet 的改进
在 Exchange 2007 RTM 中,Get-StorageGroupCopyStatus 和连续复制性能计数器报告的状态在以下几种情况下会不准确或使人产生误解:
未处于活动状态(例如没有正在发生变化)的存储组可能会在其状态不正常时报告正常。由于在重播日志前,无法检测到不正常的情况,所以会发生这种情况。
在复制初始化过程中,由于要评估复制状态,因此状态可能不准确。初始化完成后,将更新状态。
卸除存储组中的数据库后,LastLogGenerated 字段的值可能是错误的。
当日志流中缺少一个或多个日志文件时,被动副本会继续尝试恢复,导致复制状态在失败状态和正常状态之间切换。出现这种情况后,重播队列和复制队列将继续增长。
在少数情况下,日志可以成功通过验证但仍无法重播。在这种情况下,系统会在尝试恢复时在失败状态和正常状态之间交替切换。出现这种情况后,重播队列和复制队列将继续增长。
Exchange 2007 RTM 使用群集数据库和注册表在 Microsoft Exchange 复制服务和 Exchange 管理任务之间进行通信,这是一个异步进程。由于该进程是异步的,可能会导致上述不可信的状态。
在 Exchange 2007 SP1 中,通过重新设计用于 Microsoft Exchange 复制服务和 Exchange 管理任务之间进行通信的基础机制,已经解决了前面的问题。现在,管理任务可以使用远程过程调用 (RPC) 直接与 Microsoft Exchange 复制服务进行通信,而不是使用群集服务或注册表。
此外,Get-StorageGroupCopyStatus cmdlet 通过添加新的状态信息已得到增强:
如果无法通过网络访问目标计算机上的 Microsoft Exchange 复制服务,Get-StorageGroupCopyStatus cmdlet 将 SummaryCopyStatus 报告为 ServiceDown。
如果目标计算机上的 Microsoft Exchange 复制服务尚未完成初始启动检查,Get-StorageGroupCopyStatus cmdlet 将 SummaryCopyStatus 报告为 Initializing。此外,创建了新的性能计数器,使用布尔值表示这种状态。
如果尚未完成增量种子设定,Get-StorageGroupCopyStatus cmdlet 将 SummaryCopyStatus 报告为 Synchronizing。
仅当使用 Exchange 管理工具的 Exchange 2007 SP1 版本时,SummaryCopyStatus 值的新状态才可见。如果使用 Exchange 管理工具的 Exchange 2007 RTM 版本,任何上述情形的状态都将报告为 Failed。
Test-ReplicationHealth Cmdlet
Exchange 2007 SP1 引入了一个名为 Test-ReplicationHealth 的新 cmdlet。该 cmdlet 可用于主动监视连续复制和连续复制管道。可在邮箱服务器上本地运行 Test-ReplicationHealth cmdlet 以检查本地连续复制 (LCR)、群集连续复制 (CCR) 和备用连续复制 (SCR) 环境中的复制状态。Test-ReplicationHealth cmdlet 还可与 Microsoft Operations Manager (MOM) 管理包紧密集成,提供详细说明邮箱服务器连续复制的运行状态的简明、准确的信息。检查按严重程度进行;先检查比较重要的测试。如果其中一个检查失败,则会假设重要性次之的测试也会失败或不相关。
Test-ReplicationHealth cmdlet 检查复制、群集服务、存储组复制和重播状态的各个方面,以提供复制系统的完整概述。具体来说,在群集中的节点上运行 Test-ReplicationHealth cmdlet 时,它将执行下表中介绍的测试。
Test-ReplicationHealth cmdlet 执行的测试
Test | 说明 |
---|---|
被动节点状态 (PassiveNodeUp) |
验证被动节点在 CCR 环境中使用时是否处于 Up 状态。 |
群集网络状态 (ClusterNetwork) |
验证在本地节点上发现的所有托管群集网络是否正在运行。 |
仲裁组状态 (QuorumGroup) |
验证包含仲裁资源的群集组是否正常。 |
文件共享仲裁状态 (FileShareQuorum) |
验证是否可以访问具有文件共享见证的“多数节点集”仲裁使用的 FileSharePath 值。 |
群集邮箱服务器组状态 (CmsGroup) |
通过确认组中的所有资源是否联机来验证群集邮箱服务器是否正常。 |
节点状态 (NodePaused) |
验证群集中的两个节点都未处于暂停状态。 |
DNS 注册状态 (DnsRegistrationStatus) |
验证已设置“要求 DNS 注册必须成功”的所有托管群集网络接口是否已通过域名系统 (DNS) 注册。 |
复制服务状态 (ReplayService) |
验证本地节点上的 Microsoft Exchange 复制服务是否正常。 |
故障转移后装入的数据库 (DBMountedFailover) |
将检查发生故障转移后是否有任何数据库被卸除或失败。此测试仅检查因故障转移而失败的数据库。 |
挂起的存储组副本 (SGCopySuspended) |
将检查群集邮箱服务器上是否有任何存储组的连续复制被挂起。 |
失败的存储组副本 (SGCopyFailed) |
检查是否存在任何存储组副本处于 Failed 状态。 |
正在初始化的存储组 (SGInitializing) |
检查是否有任何存储组处于 Initializing 状态。 |
存储组副本队列长度 (SGCopyQueueLength) |
检查是否存在复制副本队列长度大于最佳实践阈值的存储组。当前,这些域值为:
|
存储组重播队列长度 (SGReplayQueueLength) |
检查是否存在复制重播队列长度大于最佳实践阈值的存储组。当前,这些域值为:
|
监视 Test-ReplicationHealth 上下文
Test-ReplicationHealth cmdlet 包括名为 MonitoringContext 的参数,使用它可以使监视事件和性能计数器包括在任务结果中。由 MOM 管理包使用此参数。此参数的两个可能值是 $true 或 $false。如果指定 $true,则除了有关服务的信息以外,结果还将包含监视事件和性能计数器。
如果指定了监视上下文,则只在主动节点上验证下列检查:
PassiveNodeUp
ClusterNetwork
QuorumGroup
FileShareQuorum
CmsGroup
NodePaused
DnsRegistrationStatus
ReplayService
DBMountedFailover
如果指定了监视上下文,则只在被动节点上验证下列检查:
ClusterNetwork
DnsRegistrationStatus
ReplayService
SGCopySuspended
SGCopyFailed
SGInitializing
SGCopyQueueLength
SGReplayQueueLength
Microsoft Exchange 复制服务发布的性能计数器
Microsoft Exchange 复制服务提供的性能计数器可用于监视 LCR 和 CCR 中的复制运行状况。建议收集和评估本主题稍后部分介绍的计数器,以监视和排除与性能相关的问题。
建议的 Microsoft Exchange 复制服务性能计数器
Microsoft Exchange 复制服务为每个存储组副本创建下表中的计数器实例。这使您可以独立监视每个存储组的运行状况和性能。您可以通过监视 MSExchange Replication 性能对象下的 ReplayQueueLength 和 CopyQueueLength 计数器来监视每个存储组的运行状况和状态。
注意: |
---|
如前面所述,Get-StorageGroupCopyStatus cmdlet 也可以显示这些计数器的值。 |
计数器名称 | 计数器说明 |
---|---|
Copy Queue Exceeds Mount Threshold (CCR only) |
指示复制队列长度是否大于自动数据库装入拨号指定的阈值。在 CCR 环境中,如果复制队列长度超过了自动数据库装入拨号阈值,则此计数器的值为 1,而在 LCR 环境中该值始终为 0。 |
CopyGenerationNumber |
指示已复制的上一个日志文件的生成序号。 |
CopyNotificationGenerationNumber |
指示 Microsoft Exchange 复制服务已知的上一个日志文件的生成序号。 |
CopyQueueLength |
指示正在等待复制和检查的日志文件的数量。 |
Failed |
值为 1 表示所选实例(存储组)的连续复制处于 Failed 状态。值为 0 表示连续复制未处于 Failed 状态。 |
Initializing |
值为 1 表示所选实例(存储组)的连续复制处于 Initializing 状态。此状态表示存储组副本正在执行初始启动检查,或 Microsoft Exchange 复制服务正在执行增量重新设定种子。值为 0 表示连续复制未处于 Initializing 状态。 |
InspectorGenerationNumber |
指示已检查的上一个日志文件的生成序号。 |
ReplayBatchSize |
指示一起重播的日志文件数。 |
ReplayGenerationNumber |
指示成功重播的上一个日志文件的生成序号。 |
ReplayGenerationsComplete |
指示当前批中重播的日志文件数。 |
ReplayGenerationsPerMinute |
指示当前批中的重播速率(以每分钟的日志生成为单位)。 |
ReplayGenerationsRemaining |
指示当前批中剩余的要重播的日志生成数。 |
ReplayNotificationGenerationNumber |
指示 Microsoft Exchange 复制服务已知的上一个日志文件的生成序号。 |
ReplayQueueLength |
指示正在等待重播的日志文件数。 |
已挂起 |
值为 1 表示连续复制活动已挂起。挂起意味着不能将日志文件复制或重播到被动副本。 |
TruncatedGenerationNumber |
指示被 Microsoft Exchange 复制服务截断的上一个日志文件的生成序号。 |
除了上表中列出的计数器之外,MSExchange Replica Seeder 性能对象中发布了一个名为 Seeding Finished % 的附加计数器。此计数器指示种子设定完成的百分比。此计数器值的范围是 0% 到 100%,并且该计数器仅针对正在为其设定种子的存储组发布。