Exchange 2007 数据备份和卷影复制服务

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2012-03-26

应用程序可以使用 Windows Server 2008 中的卷影复制服务 (VSS) 来备份和还原 Microsoft Exchange Server 2007。VSS 提供了一种基础结构,支持第三方存储管理程序、业务程序以及硬件提供程序共同创建并管理卷影副本。基于这种基础结构的解决方案可以使用卷影副本或镜像副本来备份或还原一个或多个 Exchange 2007 数据库。

VSS 可对请求程序(备份应用程序)、书写器(Windows 中的应用程序,例如:Exchange 2007)以及提供程序(创建卷影副本的系统组件、软件组件或硬件组件)之间的通信进行协调。要使用 VSS 备份 Exchange 2007,备份程序必须包括 Exchange 2007 感知的 VSS 请求程序。属于 Windows Server 2008 组成部分的 Windows 服务器备份程序未包括 Exchange 感知的 VSS 请求程序。

但是, Exchange 2007 Service Pack 2 (SP2) 包含一个新插件,该插件让您可以使用 Windows Server 2008 中的 Windows 服务器备份对 Exchange 数据进行基于卷影复制服务 (VSS) 的备份。可以使用 Windows 服务器备份来备份和还原 Exchange 2007 SP2 数据库。透彻地了解需要备份的内容、存储这些备份的位置以及还原这些备份的方式是成为高效 Exchange 管理员的关键。有关 Exchange 2007 中需要备份的内容的详细信息,请参阅使用 Windows 服务器备份来备份和还原 Exchange 数据

note注意:
Windows 服务器备份程序不支持 Exchange 2007 可扩展存储引擎流式 API。无法用于对 Exchange 2007 进行流 ESE 备份。

主动存储组和被动存储组都支持 Exchange 感知的 VSS 备份。Exchange 被动副本备份解决方案是仅受 VSS 支持的解决方案。这种解决方案由复制服务中包含的 Exchange 副本 VSS 书写器予以实施。只有主动存储组支持流式备份。因此,您无法使用流式备份 API 备份副本数据库。要备份副本数据库,则必须将 VSS 感知的备份程序与 Exchange 书写器的 VSS 请求程序一起使用。

note注意:
Exchange 2007 SP2 中的 Windows 服务器备份插件不支持属于复制服务的 Exchange 副本 VSS 书写器,因此无法用于备份存储组的被动副本。

Exchange 2007 支持对同一台 Exchange 服务器运行两种独立的 VSS 备份操作。此外,Exchange 2007 书写器还支持您将 Exchange 数据还原到替代位置。这包括还原存储组。另外,Exchange 2007 书写器还支持您将数据库文件还原到与存储组无关的文件夹中。然后,您可以使用 JET 数据库引擎将日志文件重播到数据库中,使数据库处于一致的、且可装入的状态。

note注意:
在 Microsoft Exchange Server 2003 中,您可以使用流式备份 API 对两个不同的存储组同时运行两种备份。但是,您无法使用 VSS 执行这些操作。在 Exchange 2003 中,只有在第一个存储组的备份完成之后,才能使用 VSS 备份另一存储组。此外,Exchange 2003 书写器不支持您将 Exchange 数据还原到除原始路径以外的其他路径。

要符合 Exchange 2007 要求,基于 VSS 的备份程序必须满足以下基本要求:

  • 必须使用 Exchange 书写器来备份文件。

    Exchange 2007 包括已内置于 Exchange 存储中的书写器。

  • 备份程序必须验证卷影副本备份集。

  • 对于任何将文件还原到原始位置的还原操作,必须使用 Exchange 书写器。

    原始位置是指一台与提取 VSS 备份所在的服务器具有相同名称和文件路径的 Exchange 服务器。

这些要求有助于确保卷影副本备份的完整性和可恢复性。如果未满足这些要求,则 Microsoft 客户服务和支持部门 (CSS) 会将该备份解决方案视为不属于 Exchange VSS 框架范围之内。在这种情况下,Microsoft CSS 无法解决备份或还原问题。建议您联系备份解决方案供应商,验证备份程序是否满足本主题中列出的要求。有关这些要求的详细信息,请参阅本主题后面部分中的“Exchange 2007 VSS 要求”。

note注意:
第三方备份程序的供应商是指您可能遇到的任何备份或还原问题的主要支持提供商。Microsoft CSS 可以帮助诊断或解决您可能遇到的与 Exchange 数据库或事务日志文件相关的问题。但是,Microsoft CSS 仅限于帮助您恢复 Exchange 环境中可用的数据库文件和事务日志文件。

有关 Microsoft CSS 如何支持基于 VSS 解决方案的详细信息,请参阅 Microsoft 知识库文章 841696 Microsoft 第三方存储软件解决方案支持策略概述

详细信息

Exchange 2007 VSS 要求

以下各部分介绍任何卷影副本备份程序必须遵循的 Exchange 2007 要求,以确保 Exchange 数据库的完整性和可恢复性。这些部分列出了有助于指出备份程序是否已满足 Exchange 要求的特定应用程序事件。备份程序和 Exchange 服务器可能会记录与备份和还原进程相关的其他事件。要验证是否已遵守 Exchange VSS 要求,请确认系统在备份和还原操作过程中已记录这些事件。

目前,任何在 Exchange 中运行的第三方备份解决方案都没有认证程序。遵守 VSS 有助于确保卷影副本备份的完整性和可恢复性。但是,它并不能保证第三方解决方案的性能或可靠性。

必须使用 Exchange 书写器来备份文件

Exchange 数据库文件、事务日志文件和检查点文件必须通过 Exchange 书写器专门进行备份。如果在卷影副本备份过程中使用 Exchange 书写器,则应用程序中将记录以下事件:

事件类型:信息

事件源:ESE

事件类别:卷影副本

事件 ID: 2005

用户:不适用

计算机:服务器名.contoso.com

常规:信息存储 (2884) 卷影副本实例 5 正在启动。这将是备份类型 卷影副本。

note注意:
在此事件中,备份类型 代表您正在执行的备份种类。例如:备份类型 是“完整”、“副本”、“增量”或“差异”。

事件类型:信息

事件源:MSExchangeIS

事件类别:Exchange VSS 书写器

事件 ID: 9608

用户:不适用

计算机:服务器名.contoso.com

常规:Exchange VSS 书写器(实例 GUID)已成功准备快照。

事件类型:信息

事件源:MSExchangeIS

事件类别:Exchange VSS 书写器

事件 ID: 9610

用户:不适用

计算机:服务器名.contoso.com

常规:Exchange VSS 书写器(实例 GUID)已成功冻结存储组。

事件类型:信息

事件源:MSExchangeIS

事件类别:Exchange VSS 书写器

事件 ID: 9612

用户:不适用

计算机:服务器名.contoso.com

常规:Exchange VSS 书写器(实例 GUID)已成功解除存储组冻结。

备份程序必须验证卷影副本备份集的完整性

建议在备份程序通知 Exchange 已成功完成备份之前,备份程序先验证卷影副本备份集的完整性。建议进行此操作的原因如下:

成功备份之后,Exchange 执行以下两种操作:

  • Exchange 更新已备份的数据库的头,以指出上次成功备份的时间。

  • Exchange 截断事务日志。在这种情况下,Exchange 将从上次成功备份中删除不再需要向前回滚的事务日志文件。  

因此,如果备份程序将完整性验证推迟到 Exchange 执行这些任务之后进行,则您必须特别小心地将上次验证的备份与该特定备份所需的所有事务日志文件保留在一起。尽管系统可能会报告已成功完成 Exchange 备份,但只有在备份程序成功完成完整性验证操作之后,您才能信赖该备份。

有关如何执行完整性检查以及如何确定必须保留哪些数据库文件和事务日志文件的详细信息,请参阅本主题后面部分中的“VSS 备份的完整性验证”。

任何还原到原始位置的操作都必须使用 Exchange 书写器

对于任何将 Exchange 相关文件还原到原始位置的还原操作,必须专门使用 Exchange 书写器。原始位置是指一台与提取 VSS 备份所在的 Exchange 服务器具有相同名称和文件路径的 Exchange 服务器。

在卷影副本还原操作过程中,Exchange 书写器将在应用程序日志中记录以下事件:

事件类型:信息

事件源:MSExchangeIS

事件类别:Exchange VSS 书写器

事件 ID: 9620

用户:不适用

计算机:服务器名.contoso.com

常规:Exchange VSS 书写器(实例 GUID)已成功处理预还原事件。

事件类型:信息

事件源:MSExchangeIS

事件类别:Exchange VSS 书写器

事件 ID: 9618

用户:不适用

计算机:服务器名.contoso.com

常规:Exchange VSS 书写器(实例 GUID)已成功处理后还原事件。

VSS 备份的完整性验证

当您使用 Exchange 流式备份 API 备份数据库时,数据库中的每页都将依次读取,且每页的检验和完整性都将在备份过程中予以验证。此外,在备份事务日志文件之前,还会验证事务日志文件的校验和完整性。

但是,在 VSS 备份过程中,Exchange 没有机会读取每个数据库文件并验证校验和完整性。因此,备份程序必须验证数据库和事务日志文件的完整性。您可以运行 Eseutil 命令执行这些验证检查。

如果未对 VSS 备份执行校验和验证,则无法检测到数据库中已损坏的页面。已损坏的页面最终将出现在所有可用的备份中。在这种情况下,唯一的恢复方法就是修复数据库。数据库修复可能需要较长的停机时间,并导致某些数据丢失。您将丢失每个已损坏的数据库页面中的数据。

但是,如果您验证上次 VSS 备份的所有页面均完好无损,则可从数据库中清除已损坏的页面。为此,请通过使用完整备份之后所创建的事务日志还原已验证的备份,并将该备份向前回滚。此操作所需的停机时间通常远远小于数据库修复操作所需的停机时间。此外,您还可以在不丢失数据的情况下执行这类恢复操作。因此,只有备份中的所有文件均经过校验和验证之后,您才能将 VSS 备份视为已成功。

建议您使用以下两条规则来检查备份的完整性:

  • 始终必须保留一份数据库文件的完整性验证副本。完整性验证备份是指备份集中的数据库文件中已完成页面校验和验证的备份。

  • 必须对恢复最新完整性验证数据库文件所需的所有事务日志文件进行备份。此外,还必须验证事务日志文件的校验和级别的完整性。

所需的事务日志至少包括上次验证备份中包含的每个数据库文件头的“所需的日志”字段中列出的日志文件范围。如果没有这些日志文件,则该数据库在还原之后不可装入。

important要点:
上述要求适用于上次完整性验证备份,但不适用于最新备份。只有在最新备份通过校验和验证之后,才能视为有效备份。

或者,您也可以保留还原数据库之后、将数据库完全向前回滚所需的其他事务日志文件。这些文件是指所有以连续顺序排列的事务日志文件,从最少“所需的日志”文件开始,到最近创建的、已从 Exchange 服务器中清除的事务日志为止。以下是这些文件的示例和说明。

保留“所需的日志”范围中未列出的事务日志文件是可选的。但是,仅当保留日志文件并非成功还原和装入已备份的数据库所绝对必需时,上述操作才是可选的。然而,如果您没有保留所有相应日志文件,则从备份中还原将导致丢失备份之后在数据库中所做的所有更改。

强烈建议您保留还原和装入已备份数据库所需的事务日志文件,以及向前回滚数据库所需的所有后续事务日志文件。

确定需要哪些事务日志文件

如果联机备份 Exchange 数据库,则至少始终有一个事务日志文件将与该数据库一起备份。无论使用流式备份 API、还是使用 VSS 备份 API,此行为都会发生。

还原联机备份之后,事务日志中的信息必须应用到该数据库。此操作称为重播事务日志文件。每个数据库头的“所需的日志”字段将记录必须重播到该数据库的事务日志文件范围的序列(生成)号。

如果“所需的日志”字段显示 0-0,则可装入该数据库,而不必重播任何其他事务日志数据。仅当数据库处于干净关闭状态之后,“所需的日志”值才为 0-0。运行数据库时,“所需的日志”字段将始终记录尚未应用到数据库的事务日志范围。此范围将不断更新。

在联机状态中备份的数据库始终拥有非零的“所需的日志”范围。因此,相应的事务日志文件必须与数据库一起备份。如果还原数据库之后,这些日志文件不可用,则数据库无法装入。如果无法获得所需的日志文件,则必须执行数据库修复操作。但是,并不能数据库修复操作成功完成。此外,数据库修复操作经常会导致某种程度的数据丢失,即使仅丢失已丢失的日志文件中的数据。

如果使用 Exchange 书写器附带的 Exchange 流式备份 API 或 VSS 备份 API,则装入数据库所需的日志文件将与数据库一起自动进行备份。如果仅重播“所需的日志”字段中指定的日志文件,则数据库将还原到完成备份所在的点。如果需要将数据库向前回滚超过该点,则还必须播放备份完成之后生成的日志文件。

要从任何特定备份中成功将数据库向前回滚,必须按连续顺序保留所有日志文件,从“所需的日志”范围中的最少日志开始,到数据库存储组中最近生成的日志文件为止。如果此系列中的任何日志丢失或损坏,则仅可向前回滚到丢失文件或损坏文件之前的最后一个完好日志文件点。

因此,从备份中恢复时,如果不希望数据丢失,则必须保留从上次验证过的成功数据库备份中转发的所有事务日志文件。

事务日志截断

如果未从 Exchange 服务器中删除事务日志文件,则日志文件将堆积,直到消耗完所有可用磁盘空间。因此,流式备份 API 和 VSS 备份 API 都支持在完成“正常”备份或“增量”备份之后修剪事务日志文件。当备份程序通知 Exchange 已成功完成备份操作之后,系统将自动从服务器中删除早于恢复最近备份所需的日志文件。

对于流式 API,数据库的校验和验证是在备份过程中执行的。在完成备份操作之前,整个数据库和所需日志文件的物理完整性均已经过检查。对于 VSS API,校验和验证无法作为实际备份过程的一部分予以执行。备份程序供应商必须验证与备份过程无关的数据库的物理完整性。在备份操作之前或程序 Exchange 通知备份完成之后,通过使用 Eseutil 命令可以执行这种验证。

  • 如果校验和验证在备份完成之前已执行,且如果发现备份集中出现问题,则将向 Exchange 发出信号,指出未成功备份。此操作将停止 Exchange 从服务器中截断日志文件。

  • 如果校验和验证推迟到发出备份完成信号之后进行,则 Exchange 将从服务器中删除较早的日志文件。其中有些日志文件可能是从早期完整备份中向前回滚时必需的文件。如果您没有制作这些日志文件的副本,则有可能无法完全向前回滚。

建议在备份程序通知 Exchange 已完成备份之前,先对 VSS 备份执行校验和验证。如果校验和验证推迟到完成备份之后进行,则备份程序必须保留所有已截断的事务日志文件副本,除非您不必将 Exchange 完全向前回滚。

在大多数情况下,日志文件集中已提供将 VSS 备份向前回滚所需的、与以前的备份一起保存的所有事务日志文件,以及与当前备份一起保存的日志文件。但是,当您选择备份解决方案时,您应验证是否确实已提供这些日志文件。

还原未验证的备份

您可能需要在对备份执行校验和验证之前从备份中还原数据库。在这种情况下,建议您从早期的验证备份中还原数据库,然后将该备份向前回滚。这种方法优先于依赖未验证的备份。

但是,您的服务级别协议可能要求您更快速地还原数据,而不是从早期备份中还原。在这种情况下,只要您将以前的验证备份与将以前的备份完全向前回滚所需的所有日志文件保留在一起,则从未验证的备份中还原可能是一种更好的选择。这样,如果您发现未验证的备份已损坏,您可以从已知的完整备份中向前回滚。

检查快照的一致性

VSS 请求程序必须验证快照的一致性。此外,验证快照的一致性是得到 Exchange 工作组支持的一种备份解决方案要求。Exchange 2007 支持采用以下两种方法检查快照的一致性。

  • CHKSGFILES API

  • Eseutil 命令行工具

有关如何通过使用 CHKSGFILES API 验证快照一致性的详细信息,请参阅 Validating Backup Integrity By Using CHKSGFILES(英文网页)。

有关如何通过使用 Eseutil 命令行工具验证快照一致性的详细信息,请参阅 Validating Backup Integrity By Using Eseutil(英文网页)。

解决卷影复制服务问题

默认情况下,VSS 随 Windows Server 2008 一起安装。该服务已设置为“手动”启动类型。如果备份程序(即:请求程序)可以使用 VSS 书写器,则该服务将启动。

您可以使用以下项帮助解决使用 Exchange 2007 VSS 备份时可能遇到的问题:

  • 事件日志信息

  • VSSADMIN 命令

  • 诊断记录

  • Exchange Extra 工具

  • BETest 工具

事件日志信息

以下步骤介绍您使用 VSS 与记录的对应事件时出现的 Exchange 2007 备份过程。请检查备份操作过程中记录的事件,有助于确定哪个组件发生故障。

步骤 1:准备数据库

  1. 备份程序(又称为代理)运行计划的作业。

  2. 备份程序中的 VSS 请求程序向 VSS 提交请求,以便为快照备份准备选定的 Exchange 存储组。

  3. VSS 向 Exchange VSS 书写器发出信号,以准备快照备份。

下表为每个启动的备份实例列出应用程序中记录的一系列事件。

事件 ID 事件类型 事件源 常规

9604

信息

MSExchangeIS

Exchange VSS 书写器已成功收集元数据文档,以便准备备份或还原。

9818

信息

MSExchangeIS

已为“EcPrepareSGForBackup”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

数据:

0000: 54 68 69 72 64 20 53 74 Third St

0008: 6f 72 61 67 65 20 47 72 orage Gr oup.

9811

信息

MSExchangeIS

Exchange VSS 书写器(实例 56)已为存储组“第三存储组”的完整备份或副本备份成功准备数据库引擎。将装入并备份以下数据库:

第三存储组

数据:

0000: 46 75 6c 6c 00 Full.

9606

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27)已成功准备备份。

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnPrepareSnapshot”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

9608

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功准备快照。

2005

信息

ESE

信息存储 (2256) 卷影副本实例 56 正在启动。这将是“完整”卷影副本。

步骤 2:数据库快照

当 Exchange 书写器向 VSS 报告已完成备份准备之后,将发生以下操作:

  1. Exchange 书写器冻结相应的 Exchange 数据库。在这种情况下,Exchange 执行以下操作。

    • Exchange 禁止对特定存储组执行管理操作。

    • Exchange 检查存储组的卷依存关系

    • Exchange 挂起对相应数据库文件和事务日志文件的所有写入操作。

      note注意:
      Exchange 仍允许读取访问数据库文件和事务日志文件。
  2. Exchange 启动操作以冻结 Exchange 数据库和事务日志文件时,Exchange 将启动一个工作线程,跟踪创建数据库快照副本所需的时间。此复制过程不得超过 10 秒。

整个快照副本过程不得超过 70 秒。这包括“步骤 2:数据库快照”过程中出现的所有操作。如果整个过程超过 70 秒,则工作线程将超时。如果发生超时,则 Exchange 将停止备份作业并解冻 Exchange 存储组。然后,Exchange 继续典型操作。

下表列出快照操作过程中在应用程序日志中记录的一系列事件。

事件 ID 事件类型 事件源 常规

2001

信息

MSExchangeIS

MSExchangeIS (2256) 第三存储组:启动卷影副本实例 56 冻结。

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnFreeze”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

9610

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功冻结存储组。

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnThaw”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)

2003

信息

ESE

结束信息存储 (2256) 卷影副本实例 56 冻结。

9612

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功解除存储组冻结。

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnPostSnapshot”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)

步骤 3:卷影副本验证

备份程序中的 VSS 请求程序验证卷影副本的运行状况。然后,该程序通知 Exchange 备份是否已成功。此操作将发出备份操作已完成的信号。OnBackupComplete() 方法可用来重置 backupInProgress 标志。

下表列出备份完成过程中在应用程序日志中记录的一系列事件。

事件 ID 事件类型 事件源 常规

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnBackupComplete”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

9818

信息

MSExchangeIS

已为“EcSGBackupComplete”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

数据:

0000: 54 68 69 72 64 20 53 74 Third Storage Group.

9780

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功完成存储组“第三存储组”的完整备份或增量备份。

2006

信息

ESE

结束信息存储 (2256) 卷影副本实例 56 已成功完成。

9616

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功处理备份完成事件。

退出备份操作时,Exchange 书写器将调用 OnBackupShutdown() 方法。此方法用来执行完成备份作业之后、退出备份程序之时所需的操作。

如果发生致命错误,则 OnBackupShutdown() 方法会将 Exchange 书写器状态设置为“失败”。

下表列出 BackupShutdown 事件过程中在应用程序日志中记录的一系列事件。

事件 ID 事件类型 事件源 常规

9818

信息

MSExchangeIS

已为“CVssIExchWriter::OnBackupShutdown”调用 Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)。

9648

信息

MSExchangeIS

Exchange VSS 书写器(实例 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56)已成功处理备份关闭事件。

在备份失败过程中,将调用以下两个函数:

  • CVssIExchWriter::OnAbort()

    此方法指出卷影副本操作已提前结束。Exchange 书写器使用此方法清理 Exchange 书写器,并通知 JET 数据库解除冻结(释放)信息存储。此外,Exchange 书写器还使用此方法通知 JET 数据库快照已停止。

  • CVssIExchWriter::EcBackupCleanup()

    如果备份失败,Exchange 将使用此方法执行后备份失败清理操作。Exchange 使用此方法通知 JET 数据库快照已失败。此外,Exchange 还使用此方法通知信息存储快照已失败。

步骤 4:事务日志截断

成功备份结束时,Exchange 将执行以下操作:

  • Exchange 截断事务日志文件。

    note注意:
    如果您不执行 Exchange 备份,但对包含 Exchange 数据库文件的卷进行快照备份,则该备份的处理方式与 Exchange 备份的处理方式相同。但在这种情况下,备份视为副本备份,且不会截断事务日志。
  • Exchange 使用相应的“所需的日志”字段信息更新数据库头。

  • Exchange 清除处于正在进行状态的备份。

  • Exchange 记录上次备份相应数据库的时间。

VSSADMIN 命令

您可以使用 VSS 管理命令行工具 (VSSADMIN) 获得有关与 VSS 一起注册的书写器和提供程序的信息。

要获得有关 VSS 书写器的信息,请执行下列步骤:

  1. 在 Exchange 服务器上,单击“开始”,再单击“运行”,并键入 cmd,然后单击“确定”。

  2. 在命令提示符下,键入 vssadmin list writers,再按“输入”。

    检查返回的结果,以找到 Exchange 书写器结果。Exchange 书写器应处于稳定状态。当 Exchange 书写器处于稳定状态时,返回以下结果:

    Writer name:'Microsoft Exchange Writer'

    Writer Id:{76fe1ac4-15f7-4bcd987e-8e1acb462fb7}

    Writer Instance Id:{977637c2-fcdd-463e-b1f8-a9a5d603a2e8}

    State:[1] Stable

    Last error:No error

    如果“状态”值不是“稳定”,请重新启动 Microsoft Exchange 信息存储服务。当 Exchange 书写器处于失败状态时,将返回类似以下内容的结果:

    Writer name:'Microsoft Exchange Writer'

    Writer Id:{76fe1ac4-15f7-4bcd987e-8e1acb462fb7}

    Writer Instance Id:{977637c2-fcdd-463e-b1f8-a9a5d603a2e8}

    State:[14] Failed

    Last error:Retryable error

  3. 要获得有关已注册的 VSS 提供程序的信息,请在命令提示符下键入 vssadmin list providers。应出现以下结果:

    Provider name:'Microsoft Software Shadow Copy provider 1.0'

    Provider type:System

    Provider Id:{b5946137-7b9f-4925-af80-51abd60b20d5}

    Version: 1.0.0.7

    默认情况下,仅已列出 Microsoft 软件卷影副本提供程序。但是,如果已安装第三方备份程序,则可能会列出其他提供程序。

note注意:
有关可用命令的详细信息,请在命令提示符下键入 vssadmin /?

诊断记录

如果您怀疑遇到的问题因 Exchange 书写器问题而引起,请为 Exchange 书写器启用诊断记录。为此,请执行下列步骤:

  1. 启动 Exchange 命令行管理程序。

  2. 运行以下命令:

    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"} | set-eventloglevel -level expert 
    
  3. 要验证 Exchange 书写器的记录级别,请运行以下命令:

    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"}
    
  4. 要将诊断记录级别还原为默认级别,请运行以下命令:

    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"} | set-eventloglevel -level Lowest
    

Exchange 2007 Extra 工具

您可以使用 Exchange 2007 附带的疑难解答助理 (Extra) 工具跟踪 Exchange 书写器。为此,请执行下列步骤:

  1. 在 Exchange 服务器上,单击“开始”,再单击“运行”,并键入 extra,然后单击“确定”。

  2. 如果以前未运行该程序,请单击“加入 Microsoft 客户体验改善计划”,或单击“现在我不想加入此计划”。

  3. 在任务窗格中,单击“选择任务”。

  4. 在“疑难解答任务选择”屏幕中,单击“跟踪控制”。

  5. 如果收到以下消息,请单击“确定”:

    此服务器没有解释跟踪所需的模块。仅当此操作直接受限定的 Exchange 支持工程师监控时才能继续。

  6. 请注意“选择跟踪文件位置”框中显示的路径。

  7. 单击“设置手动跟踪标记”。

  8. 在“要跟踪的组件”列表中,单击“存储”,但不要单击选中“存储”复选框。

  9. 在“跟踪标记”列表中,单击以选中“tagVSS”复选框。

  10. 单击“开始跟踪”。

BETest 工具

您可以使用 BETest 工具帮助确定问题是否是由第三方 VSS 请求程序造成的。

BETest 工具是一款测试请求程序,您可以用来测试 Exchange VSS 书写器。BETest 工具使用 Microsoft VSS API 与 Exchange 书写器进行通信并对其进行测试。BETest 工具可以执行典型 VSS 请求程序执行的许多任务。您可以使用 BETest 工具对 Exchange 存储组执行 VSS 备份。BETest 可以对 Exchange 2007 服务器上的主动数据库或副本数据库执行 VSS 快照。

要获得此工具,请下载并安装 VSS SDK 版本 7.2。要获得此 SDK,请参阅 Volume Shadow Copy Service SDK 7.2(英文网页)。

以下路径是 BETest i386 版本的默认安装位置:

C:\Program Files (x86)\Microsoft\VSSSDK72\TestApps\betest\obj\i386

note注意:
BETest AMD64 版本也已推出。运行 BETest 之请,请移动到包含相应操作系统版本的目录。

要使用 BETest,请执行下列步骤:

  1. 打开命令提示符,然后移动到操作系统的相应目录。例如,移动到 C:\Program Files (x86)\Microsoft\VSSSDK72\TestApps\betest\obj\amd64 目录。

  2. 验证哪些 VSS 书写器可用。为此,请键入 betest.exe >AvailableWriters.txt

  3. 创建要与 BETest 一起使用的 Components.txt 文件。为此,请执行下列步骤:

    1. 使用记事本等文本编辑器打开 AvailableWriters.txt 文件。

    2. 找到“Microsoft Exchange 书写器”部分。在记事本中,按 F3,在“查找内容”框中键入 Microsoft Exchange 书写器,然后按“查找下一个”。

    3. 使用“WriterName = Microsoft Exchange Writer”部分中出现的信息填充 Components.txt 文件。此文件格式如下:

      "<WriterIdGUID>":"<component-logical-path>" {"target" # "new target", ...}, ..."<component-logical-path>" :"<subcomponent-logical-path>,...";

      在此文件中,<component-logical-path> 代表 LogicalPath 条目以及组件 GUID 附带的 LogicalPath 条目,或者如果没有 LogicalPath 值,则仅代表组件 GUID。组件 GUID 代表特定的存储组。例如,<component-logical-path> 条目可能是指“Microsoft Exchange Server\Microsoft Information Store\服务器名\000dd565-c4e8-4f58-a8b1-2e29eee4f5c0”。

      以下是一个示例 Components.txt 文件:

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\服务器名\999dd565-c4e8-4f58-a8b1-2e29eee4f5c0 ";

      在此示例中,第一个 GUID 是指 Exchange 书写器的 GUID。您无法修改此 GUID。第二个 GUID 代表特定的存储组。通过指定相应存储组的 GUID,您可以指定要对其运行命令的存储组。要获得特定存储组的 GUID,请运行 Get-StorageGroup '<StorageGroupName>' | fl GUID cmdlet。

      Exchange 仅支持对主动存储组进行流式备份。因此,要备份被动存储组,必须使用 VSS 备份。如果您有一个 Exchange 群集连续复制 (CCR) 群集,或者如果需要从已启用本地连续复制的服务器中备份副本复制,则 Components.txt 文件必须类似以下示例内容之一。

      对于 CCR 被动副本

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<Clustered Mailbox Server Name>\<Storage Group GUID>";

      对于 LCR 被动副本

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<Server Name>\<Storage Group GUID>";

  4. 创建 Components.txt 文件之后,请运行以下命令备份存储组:

    BETEST.exe /B /E /T 1 /S output.XML /C components.txt /D c:\betest > output.txt
    
    note注意:
    此命令将在 C:\Betest 目录中创建备份。您也可以在不使用 /E 选项的情况下运行此命令。
  5. 如果运行命令时收到错误消息,则 Exchange 书写器出现问题。要帮助解决此问题,请检查您在步骤 4 中运行该命令时创建的 Output.txt 文件的内容。

最佳实践

以下列表包含一些建议解决 VSS 备份问题的最佳实践。

  • 请验证您已安装最新 Windows Service Pack 和最新 VSS 更新。

  • 假设您正在解决尝试启动备份作业时发生的 -2403 错误。在这种情况下,VSS 使用“手动”启动类型。如果备份作业挂起,则 VSS 不会停止。相反,VSS 可能会确定该备份仍在运行。在这种情况下,当您尝试启动新的备份作业时,您将收到 -2403 错误。 要解决此问题,请手动停止 VSS,然后启动备份作业。

  • 如果使用 BETest 程序解决问题,请使用该程序捕获数天内的多个 BETest 备份。此外,当您运行 BETest 程序时,您应停止并临时禁用任何第三方的备份相关服务。

  • 如果 VSS 书写器出现超时问题,则您的服务器可能出现了性能问题。在这种情况下,请收集性能日志,以确定是否存在性能问题。

  • VSS 书写器处于“可重试”状态。此问题指出 VSS 书写器出现非致命错误。该状态在一段时间之后将自动更改。但是,您可以通过重新启动服务器来解决“可重试”状态问题。

VSS 参考资料

以下是可用的 VSS 相关参考资料: