This documentation is archived and is not being maintained.

Validating Backup Integrity By Using Eseutil

A Volume Shadow Copy Service (VSS) requestor must check snapshot consistency. Microsoft Exchange Server 2010 supports the following two methods for checking snapshot consistency:

  • The CHKSGFILES API

  • The Eseutil command-line tool

We recommend that you use the CHKSGFILES API because the Eseutil command might not be supported in later versions of Exchange, and because it is easier for the backup application to detect, diagnose, and report errors that are found during the CHKSGFILES consistency check. For information about how to use the CHKSGFILES API, see Validating Backup Integrity By Using CHKSGFILES.

To check the snapshot consistency by using Eseutil.exe, run the command against the database and log files that are identified in the following table.

ESEUTIL commands for each backup type

File type / backup type

Full backup

Copy backup

Incremental backup

Differential backup

.edb

"eseutil /k /i"

"eseutil /k /i"

Not applicable

Not applicable

.log

"eseutil /k" (1)

"eseutil /k" (1)

"eseutil /k" (2)

"eseutil /k" (2)

.stm

Not applicable

Not applicable

Not applicable

Not applicable

.chk

Not applicable

Not applicable

Not applicable

Not applicable

All the log files that have a log file generation number that is equal to or greater than the generation number of the checkpoint log file are required to recover a snapshot database. If it exists, the current log file (Enn.log) is also required for database recovery. If any of the required log files fail the consistency check, the requestor must make sure that the status of the backup component is set to FALSE before it calls BackupComplete. To identify the checkpoint log file, run Eseutil.exe against the snapshot checkpoint file and parse the output for "Checkpoint:." For example, "c:\eseutil.exe /mk E01.chk" shows the following:

Checkpoint: (0x20, 9D, 187)

Where 0x20 is the hexadecimal log generation number of the checkpoint log file.

In this example, any log files, including E01000020.log and greater, must not be corrupted to recover the snapshot database, even if the database itself had already passed the physical consistency check.

All log files in an incremental or differential backup set are required for database recovery. You can check the consistency of a log sequence by running ESEUTIL against the log file prefix. For example, "eseutil /k E01" will run consistency checks against all the files of the form E01xxxxx.log on a given path.

The requestor must verify that all the exit ERRORLEVEL values that are returned are non-negative. To see the ERRORLEVEL at the command line, type "echo %errorlevel%" after Eseutil.exe finishes running. A negative ERRORLEVEL indicates that one or more files is corrupted.

Before the requestor calls BackupComplete, it must make sure that the status of the backup component reflects the result of the consistency check. The status should be FALSE if any corruption was found and TRUE if no corruption was found. Because of the nature of backups that are made by using VSS, the server does not touch all the pages and perform the necessary consistency checks. Verification of snapshot consistency is required for any backup/restore application that uses VSS.

Show: