监视高可用性和站点恢复

**适用于:**Exchange Server 2010

**上一次修改主题:**2010-01-11

确保服务器可靠运行并且数据库副本状态良好是日常消息传送操作的主要目标。为了帮助确保 Microsoft Exchange Server 2010 组织的可用性和可靠性,您必须主动监视硬件、Windows 操作系统和 Exchange 2010 服务。将主动性监视与预防性维护相结合,有助于在出现影响 Exchange 组织运行的严重问题之前确定可能出现的错误。

监视 Exchange 组织的过程包括定期检查服务或数据是否有问题。通常情况下,监视功能还包括用于在出现问题时向您发送警报的通知系统。Windows Server 2008 和 Exchange 2010 包括了几个工具和服务,可帮助您确保 Exchange 组织正常运行。日常监视的主要优点如下:

  • 满足您的服务级别协议 (SLA) 的要求
  • 确保成功完成特定的管理任务(例如每日备份操作)
  • 检测并解决问题(例如可能会影响消息服务或数据可用性的问题)

在 Exchange 2010 组织中,应正式明确各种操作中涉及的步骤、角色和职责。一定要了解合理的操作实践和步骤与工作正常的基础结构之间的联系。详细记录的、全面的操作过程和步骤有助于确保有效管理 Exchange 所依赖的组织环境中的所有组件。

Exchange 2010 包含几个内置工具和功能。当 Exchange 被配置为用于高可用性或站点恢复时,可将这些工具和功能可用作定期主动监视的一部分。用于高可用性和站点恢复的主要监视 cmdlet 是 Get-MailboxDatabaseCopyStatusTest-ReplicationHealth。除了提供可执行监视功能并报告状态的 cmdlet 外,Exchange 2010 还提供一项新的事件日志流功能,该功能可利用 Windows Server 中的 crimson 通道功能,以及可从这些事件通道收集数据的内置脚本。

可以使用本主题中的详细信息监视数据库可用性组 (DAG) 的邮箱数据库副本的运行状况和状态。有关监视 Exchange 2010 的常规信息,请参阅监视 Exchange 2010

目录

Get-MailboxDatabaseCopyStatus Cmdlet

Test-ReplicationHealth Cmdlet

Crimson 通道事件日志记录

CollectOverMetrics.ps1 脚本

CollectReplicationMetrics.ps1 脚本

Get-MailboxDatabaseCopyStatus Cmdlet

可以使用 Get-MailboxDatabaseCopyStatus cmdlet 查看关于邮箱数据库副本的状态信息。通过此 cmdlet,您可以查看有关特定数据库的所有副本的信息、有关特定服务器上数据库的特定副本的信息,或者有关服务器上所有数据库副本的信息。下表介绍了邮箱数据库副本的副本状态的可能值。

数据库副本状态

数据库副本状态 描述

失败

邮箱数据库副本因未挂起而处于“失败”状态,并且该副本无法复制或重播日志文件。当邮箱数据库副本处于“失败”状态并且未挂起时,系统将定期检查导致副本状态更改为“失败”的问题是否已得到解决。当系统检测到该问题已得到解决后,并且没有其他任何问题,则副本状态将自动更改为“正常”。

正在设定种子

正在为邮箱数据库副本设定种子或正在为邮箱数据库副本的内容索引设定种子,或两者兼有。成功设定种子后,副本状态将改为“正在初始化”。

SeedingSource

正在将邮箱数据库副本用作数据库副本种子设定操作的源。

已挂起

由于管理员通过运行 Suspend-MailboxDatabaseCopy cmdlet 手动挂起数据库副本,所以该邮箱数据库副本处于“已挂起”状态。

正常

邮箱数据库副本正在成功复制和重播日志文件,或者已成功复制和重播所有可用日志文件。

ServiceDown

Microsoft Exchange 复制服务不可用或未在驻留有邮箱数据库副本的服务器上运行。

正在初始化

邮箱数据库副本将在下列情况下处于“正在初始化”状态:创建数据库副本后、Microsoft Exchange 复制服务正在启动或刚被启动时,以及从“已挂起”、“ServiceDown”、“失败”、“种子设定”、“SinglePageRestore”、“LostWrite”或“已断开连接”转变为另一种状态的过程中。处于此状态时,系统将验证数据库和日志流是否处于一致状态。在大多数情况下,副本状态在“正在初始化”状态下保持约 15 秒的时间,但在所有情况下,处于该状态的时间一般不会超过 30 秒。

重新同步

正在将邮箱数据库副本及其日志文件与数据库的活动副本进行比较,以检查者两个副本之间是否存在任何差异。副本将保持此状态,直到检测到任何差异并且加以解决。

已装入

活动副本处于联机状态并接受客户端连接。只有邮箱数据库的活动副本才能具有“已装入”状态。

已卸除

活动副本处于脱机状态并且不接受客户端连接。只有邮箱数据库的活动副本才能具有“已卸除”状态。

正在装入

活动副本即将联机,但尚未接受客户端连接。只有邮箱数据库副本的活动副本的副本状态才能是“正在装入”。

正在卸除

活动副本即将脱机并将终止客户端连接。只有邮箱数据库副本的活动副本的副本状态才能是“正在卸除”。

DisconnectedAndHealthy

邮箱数据库副本不再连接到活动数据库副本,并且在丢失连接时邮箱数据库副本处于“正常”状态。此状态表示数据库副本与其源数据库副本的连接性。当源副本和目标数据库副本之间出现 DAG 网络故障时可能会报告该状态。

DisconnectedAndResynchronizing

邮箱数据库副本不再连接到活动数据库副本,并且在丢失连接时邮箱数据库副本处于“重新同步”状态。此状态表示数据库副本与其源数据库副本的连接性。当源副本和目标数据库副本之间出现 DAG 网络故障时可能会报告该状态。

FailedAndSuspended

由于检测到故障并且该故障的解决方案明确要求管理员进行干预,因此系统会同时设置“已失败”和“已挂起”状态。例如,系统检测到活动邮箱数据库和数据库副本之间存在不可恢复的差异。与“已失败”状态不同,系统不会定期检查该问题是否已解决以及自动恢复。而是必须由管理员进行干预以解决导致失败的根本原因,然后数据库副本才能过渡到正常状态。

ActivationSuspended

邮箱数据库副本已被管理员手动阻止激活。

SinglePageRestore

此状态表示正在对邮箱数据库副本执行单页面还原操作。

Get-MailboxDatabaseCopyStatus cmdlet 还包含一个称为 ConnectionStatus 的参数,会返回有关正在使用的复制网络的详细信息。如果使用此参数,则会在该任务的输出中填充 IncomingLogCopyingNetworkSeedingNetwork 两个附加输出字段。

Get-MailboxDatabaseCopyStatus 示例

以下示例使用 Get-MailboxDatabaseCopyStatus cmdlet。每个示例都将结果传输到 Format-List cmdlet 以便按列表格式显示输出内容。

本示例将返回 DB2 数据库的所有副本的状态信息。

Get-MailboxDatabaseCopyStatus -Identity DB2 | Format-List

本示例将返回邮箱服务器 MBX2 上的所有数据库副本的状态。

Get-MailboxDatabaseCopyStatus -Server MBX2 | Format-List

本示例将返回本地邮箱服务器上的所有数据库副本的状态。

Get-MailboxDatabaseCopyStatus -Local | Format-List

本示例将返回邮箱服务器 MBX1 上的数据库 DB3 的状态、日志传送和种子设定网络信息。

Get-MailboxDatabaseCopyStatus -Identity DB3\MBX1 -ConnectionStatus | Format-List

有关使用 Get-MailboxDatabaseCopyStatus cmdlet 的详细信息,请参阅 Get-MailboxDatabaseCopyStatus

返回顶部

Test-ReplicationHealth Cmdlet

可以使用 Test-ReplicationHealth cmdlet 查看关于邮箱数据库副本的连续复制状态信息。此 cmdlet 可用于检查复制和重播状态的各个方面,以提供有关 DAG 中的特定邮件服务器的完整概述。

设计 Test-ReplicationHealth cmdlet 是为了主动监视连续复制和连续复制管道、Active Manager 的可用性,以及基础群集服务、仲裁和网络组件的运行状况和状态。可以在 DAG 中的任何邮箱服务器上本地或远程运行该 cmdlet。Test-ReplicationHealth cmdlet 将执行在下表中列出的测试。

Test-ReplicationHealth cmdlet 测试

测试名称 描述

ClusterService

验证群集服务是否正在指定的 DAG 成员或本地服务器(如果未指定 DAG 成员)上运行并且可访问。

ReplayService

验证 Microsoft Exchange 复制服务是否正在指定的 DAG 成员或本地服务器(如果未指定 DAG 成员)上运行并且可访问。

ActiveManager

验证在指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上运行的活动管理器实例是否是有效的角色(主要、辅助或单独)。

TasksRpcListener

验证任务远程过程调用 (PRC) 服务器是否正在指定的 DAG 成员或本地服务器(如果未指定 DAG 成员)上运行并且可访问。

TcpListener

验证 TCP 日志副本侦听程序是否正在指定的 DAG 成员或本地服务器(如果未指定 DAG 成员)上运行并且可访问。

DagMembersUp

验证所有 DAG 成员是否均可用、正在运行并且可访问。

ClusterNetwork

验证指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的所有群集管理的网络是否均可用。

QuorumGroup

验证默认的群集组(仲裁组)是否处于正常和联机状态。

FileShareQuorum

验证为 DAG 配置的见证服务器、见证目录和共享是否可访问。

DBCopySuspended

检查指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的任何邮箱数据库副本是否处于“已挂起”状态。

DBCopyFailed

检查指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的任何邮箱数据库副本是否处于“失败”状态。

DBInitializing

检查指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的任何邮箱数据库副本是否处于“正在初始化”状态。

DBDisconnected

检查指定 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的任何邮箱数据库副本是否处于“已断开连接”状态。

DBLogCopyKeepingUp

验证指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的数据库被动副本的日志复制和检查活动是否可以跟上活动副本上的日志生成活动。

DBLogReplayKeepingUp

验证指定的 DAG 成员(如果未指定 DAG 成员,则为本地服务器)上的数据库被动副本重播活动是否可以跟上日志复制和检查活动。

Test-ReplicationHealth 示例

本示例使用 Test-ReplicationHealth cmdlet 测试邮箱服务器 MBX1 的复制的运行状况。

Test-ReplicationHealth -Identity MBX1

返回顶部

Crimson 通道事件日志记录

Windows Server 2008 包括两个类别的事件日志:Windows 日志、应用程序和服务日志。Windows 日志类别包括之前版本的 Windows 提供的事件日志:应用程序、安全和系统事件日志。它还包括两种新日志:安装程序日志和 ForwardedEvents 日志。Windows 日志用于存储来自旧版应用程序的事件以及适用于整个系统的事件。

应用程序和服务日志是一类新的事件日志。这些日志存储来自单个应用程序或组件的事件,而不存储可能影响整个系统的事件。此新事件日志类别被称为应用程序的 crimson 通道。

应用程序和服务日志类别包括四个子类型:管理日志、操作日志、分析日志和调试日志。如果您使用事件日志记录对问题进行故障排除,则可能会对管理日志中的事件特别感兴趣。管理日志中的事件将提供有关如何对事件做出响应的指导。操作日志中的事件也很有用,但可能需要更多的解释。管理日志和调试日志并不那么用户友好。分析日志(默认情况下被隐藏和禁用)将存储跟踪问题的事件,并且通常会记录大量事件。调试日志由开发人员在调试应用程序时使用。

Exchange 2010 会将事件记录到应用程序和服务日志区域内的 crimson 通道。您可以通过执行下列步骤来查看这些通道:

  1. 打开事件查看器。
  2. 在控制台树中,导航到“应用程序和服务日志”>****“Microsoft”>“Exchange”。
  3. 在 Exchange 下,选择一个 crimson 通道:HighAvailability 或 MailboxDatabaseFailureItems。

HighAvailability 通道包含有关 Microsoft Exchange 复制服务的启动和关闭的事件,以及有关在 Microsoft Exchange 复制服务中运行的各种组件(例如 Active Manager、第三方同步复制 API、任务 PRC 服务器、TCP 侦听程序和卷影复制服务 (VSS) 编写器)的事件。HighAvailability 通道还可由 Active Manager 用于记录与 Active Manager 角色监视相关的事件和数据库操作事件(例如数据库装入操作和日志截断),以及记录与 DAG 基础群集相关的事件。

MailboxDatabaseFailureItems 通道可用于记录与会影响复制的邮箱数据库的故障相关的事件。

返回顶部

CollectOverMetrics.ps1 脚本

Exchange 2010 包含一个称为 CollectOverMetrics.ps1 的脚本,可在 Scripts 文件夹中找到该脚本。这是一个工作流脚本,可收集有关各种切换和故障切换的信息。使用 CollectOverMetrics.ps1 脚本是一种被动式监视操作。该脚本将收集并分析已记录的事件。该脚本支持允许您自定义脚本行为和输出内容的参数。下表列出了可用的参数。

CollectOverMetrics.ps1 脚本参数

参数 描述

DatabaseAvailabilityGroup

指定要从中收集指标的 DAG 的名称。如果省略此参数,则会使用本地服务器所属的 DAG。

数据库

提供需要为其生成报告的数据库的列表。支持通配符字符,例如 -Database:"DB1","DB2"-Database:"DB*"

TemporaryDataPath

指定用于存储临时文件的位置。如果省略此参数,则该目录名称将如下所示:%SystemDrive%\Temp\CollectOverMetrics\<ScriptStartTime>

StartTime

指定开始收集事件数据的时间。如果省略此参数,则开始时间将为昨天的零点(午夜)。

EndTime

指定停止收集事件数据的时间。如果省略此参数,则收集事件的结束时间为昨天的 23 点 59 分。

ReportPath

指定用于存储事件处理结果的文件夹。如果省略此参数,将使用 Scripts 文件夹。

ReportAlias

指定要向其发送报告的电子邮件别名。

IncludeAppLogs

指定是否还需要收集、合并和处理应用程序事件日志中的事件。默认情况下,将包括下列提供程序:MSExchangeIS、MSExchangeIS Mailbox Store 和 MSExchangeRepl。

AppLogProviders

指定是否要收集特定应用程序事件日志事件。如果指定了此参数,将不包括为 IncludeAppLogs 列出的提供程序,并需要通过使用 AppLogProviders 参数明确指定。

AnalyzeOnly

指明已收集该数据,只需要对其进行处理。

MergedXmlFile

指定要将收集的所有事件日志记录合并到的 XML 文件的名称。

GenerateHtmlReport

指定以简单的 HTML 表格式输出报告,以方便查看。

ShowHtmlReport

指定对于以 HTML 生成的报告,生成后应在 Web 浏览器中显示。

DotSourceMode

指定无须立即运行任何操作,但此文件源于点,以使用在其中定义的 Windows PowerShell 方法。

CollectOverMetrics.ps1 示例

以下示例使用 CollectOverMetrics.ps1 脚本。

本示例收集 DAG DAG1 中与 DB*(包括通配符)匹配的所有数据库的指标。收集这些指标后,将生成并显示一个 HTML 报告。

CollectOverMetrics.ps1 -DatabaseAvailabilityGroup DAG1 -Database:"DB*" -GenerateHTMLReport -ShowHTMLReport

本示例收集 DAG DAG2 中所有数据库的指标。收集这些指标后,将生成并显示一个 HTML 报告。

CollectOverMetrics.ps1 -DatabaseAvailabilityGroup DAG2 -GenerateHTMLReport -ShowHTMLReport

返回顶部

CollectReplicationMetrics.ps1 脚本

Exchange 2010 中包含的另一个运行状况指标脚本是 CollectReplicationMetrics.ps1。此脚本会在运行时实时收集指标,因此属于主动监视。该脚本支持允许您自定义脚本行为和输出内容的参数。下表列出了可用的参数。

CollectReplicationMetrics.ps1 脚本参数

参数 描述

DagName

指定要从中收集指标的 DAG 的名称。如果省略此参数,则会使用本地服务器所属的 DAG。

DatabaseNames

提供需要为其生成报告的数据库的列表。支持使用通配符,例如 -DatabaseNames:"DB1","DB2"-DatabaseNames:"DB*"

ReportAlias

指定要将报告发送到的电子邮件别名。

TemporaryDataPath

指定用于存储临时文件的位置。如果省略此参数,则该目录名称将如下所示:%SystemDrive%\Temp\CollectReplicationMetrics\<ScriptStartTime>

ReportPath

指定用于存储事件处理结果的文件夹。如果省略此参数,将使用 Scripts 文件夹。

持续时间

指定运行收集过程的时间段。

频率

指定收集数据指标的频率。

详细

任务完成后在屏幕上显示任务输出。

ProcessOnly

指明已收集该数据,只需要对其进行处理。

CollectReplicationMetrics.ps1 示例

以下示例使用 CollectReplicationMetrics.ps1 脚本。

本示例收集 DAG DAG1 中所有数据库的指标,并在屏幕上的报告中显示所收集的数据。

CollectReplicationMetrics.ps1 -DagName DAG1 -Verbose

返回顶部