在 Exchange 2013 中使用 Eseutil 工具验证备份完整性

了解如何使用 Eseutil 命令行工具验证 Exchange 存储的备份。

适用于:Exchange Server 2013

由于卷影复制服务 (VSS) 可以在 Exchange 继续写入数据库时创建备份,因此服务器不会触摸所有页面并执行必要的一致性检查。 因此,任何使用 VSS 的备份和还原应用程序都必须验证快照一致性。 Exchange Server 2013 支持以下两种检查快照一致性的方法:

  • The CHKSGFILES API

  • Eseutil 命令行工具

建议使用 CHKSGFILES API,因为备份应用程序可以更轻松地检测、诊断和报告在 CHKSGFILES 一致性检查期间发现的错误。 有关如何使用 CHKSGFILES API 的信息,请参阅 在 Exchange 2013 中使用 CHKSGFILES API 验证备份完整性

运行 Eseutil 工具

若要检查快照一致性,请对下表中标识的数据库和日志文件运行 eseutil 命令。

表 1. 每种备份类型的 Eseutil.exe 命令

文件类型/备份类型 完整备份 复制备份 增量备份 差异备份
.edb
“eseutil /k /i”
“eseutil /k /i”
不适用
不适用
。日志
“eseutil /k” (1)
“eseutil /k” (1)
“eseutil /k” (2)
“eseutil /k” (2)

注意

无需对 .stm 和 .chk 文件运行 eseutil 命令。

需要具有等于或大于检查点日志文件代号的日志文件生成号的所有日志文件才能恢复快照数据库。 如果存在,则数据库恢复还需要当前日志文件 (Enn.log) 。 如果任何必需的日志文件未能检查一致性,则请求者必须确保备份组件的状态设置为 FALSE,然后再调用 BackupComplete 方法。 若要标识检查点日志文件,请针对快照检查点文件运行 Eseutil.exe,并分析“Checkpoint:”的输出。以下示例演示如何针对检查点文件运行 Eseutil.exe。

c:\eseutil.exe /mk E01.chk
Checkpoint: (0x20, 9D, 187)

示例中的第二行是返回值,其中0x20是检查点日志文件的十六进制日志生成号。 在此示例中,任何日志文件(包括E01000020.log和更大的日志文件)都不得损坏,以便恢复快照数据库,即使数据库本身已检查传递物理一致性。

数据库恢复需要增量备份集或差异备份集中的所有日志文件。 可以通过针对日志文件前缀运行 Eseutil.exe 来检查日志序列的一致性。 以下示例演示如何对给定路径上的表单E01xxxxx.log的所有文件运行一致性检查。

c:\eseutil /k E01

检查 Eseutil.exe 输出

请求者必须验证返回的所有退出 ERRORLEVEL 错误值是否为非否定值。 有关 ERRORLEVEL 值的信息,请参阅 常见 Eseutil 错误的参考。 若要在命令行中查看 ERRORLEVEL,请在 Eseutil.exe 完成运行后键入“echo %errorlevel%”。 负 ERRORLEVEL 指示一个或多个文件已损坏。

在请求方调用 BackupComplete 方法之前,它必须确保备份组件的状态反映了检查一致性的结果。 如果发现任何损坏,状态将为 FALSE;如果未发现损坏,则状态将为 TRUE。

另请参阅