问题
Volume Shadow Copy Service (VSS) 信息和故障排除。
解决方案
默认情况下,VSS 随 Windows Server 2003 及更高版本一起安装。 该服务设为 手动 启动类型。 如果备份程序(即请求程序)可以使用一个或多个 VSS 写入器,则该服务将启动。
使用以下项帮助解决使用 Exchange 2007 VSS 备份时可能会遇到的问题:
- 事件日志信息
- VSSADMIN 命令
- 诊断日志记录
- Exchange Extra 工具
事件日志信息
以下步骤介绍了您使用 VSS 与记录的对应事件时出现的 Exchange 2007 备份过程。 请检查备份操作过程中记录的事件,有助于确定哪些组件发生故障。
步骤 1:准备数据库
备份程序(也称代理)运行计划的作业。
备份程序中的 VSS 请求程序向 VSS 提交请求,以便为快照备份准备选定的 Exchange 存储组。
VSS 向 Exchange VSS 写入器发出信号,以准备快照备份。
下表针对所有已启动的备份实例列出应用程序日志中记录的一系列事件。
步骤 2:数据库快照
Exchange 写入器向 VSS 报告已完成备份准备后,将发生以下操作:
1 Exchange 写入器冻结相应的 Exchange 数据库。 此时,Exchange 执行以下操作。
- Exchange 禁止对特定存储组执行管理操作。
- Exchange 检查存储组的卷依赖关系。
- Exchange 挂起对相应数据库文件和事务日志文件的所有写入操作。
注意:Exchange 仍允许读取数据库文件和事务日志文件。
2 Exchange 启动操作以冻结 Exchange 数据库文件和事务日志文件时,Exchange 将启动一个工作线程,跟踪创建数据库快照副本所需的时间。 此复制过程不得超过 10 秒。
整个快照复制过程不得超过 70 秒。 其中包括“步骤 2:数据库快照”过程中的所有操作。 如果整个过程超过 70 秒,则工作线程将超时。 如果发生超时,Exchange 将停止备份作业并解冻 Exchange 存储组。 然后,Exchange 继续执行常规操作。
下表列出快照操作过程中应用程序日志中记录的一系列事件。
步骤 3:卷影副本验证
备份程序中的 VSS 请求程序验证卷影副本的运行状况。 然后,该程序会通知 Exchange 备份是否成功。 此操作将发出备份操作已完成的信号。 此 OnBackupComplete() 方法可用于重置 backupInProgress 标志。
下表列出备份完成过程中应用程序日志中记录的一系列事件:
退出备份操作时,Exchange 写入器将调用 OnBackupShutdown() 方法。 此方法用于执行备份作业完成后退出备份程序时所需的操作。
如果发生致命错误,此 OnBackupShutdown() 方法会将 Exchange 写入器状态设为 “失败”。
下表列出 BackupShutdown 事件过程中应用程序日志中记录的一系列事件。
在备份失败过程中,将调用以下两个函数:
- CVssIExchWriter::OnAbort()
- 此方法指示卷影复制操作已提前结束。 Exchange 写入器使用此方法清理 Exchange 写入器,并通知 JET 数据库解除冻结(释放)信息存储。 此外,Exchange 写入器还使用此方法通知 JET 数据库快照已停止。
- CVssIExchWriter::EcBackupCleanup()
- 如果备份失败,Exchange 将使用此方法执行备份失败后期的清理操作。 Exchange 使用此方法通知 JET 数据库快照已失败。 此外,Exchange 还使用此方法通知信息存储快照已失败。
步骤 4:事务日志截断
成功完成备份时,Exchange 将执行以下操作:
注意:如果您不执行 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 Software Shadow Copy Provider。 但是,如果已安装第三方备份程序,则可能会列出其他提供程序。
注意:有关可用命令的详细信息,请在命令提示符下键入 vssadmin /? 。
诊断日志记录
如果您怀疑遇到的问题因 Exchange 写入器问题而引起,请为 Exchange 写入器启用诊断记录。 为此,请执行下列步骤:
注意:建议请 Microsoft 解决写入器问题。
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. 要将诊断记录级别还原为默认级别,请运行以下命令: