How to Run Eseutil /G in Integrity Mode
The integrity check in Eseutil is basically a test run of the repair function. Problems that repair would address will be reported in the <database>.integ.raw file. The .raw file logs results for all tables in the database, not just ones that have problems. For more information about the Eseutil integrity mode, see Eseutil /G Integrity Mode.
Note
An integrity check may end prematurely if damage to the database is of such a nature that parts of the database must be repaired before other parts can be checked. The fact that an integrity check ends before it finishes does not necessarily mean that repair is unlikely to succeed. Although you can perform an integrity check after a dirty shutdown, we do not recommend this. You should recover the database to Clean Shutdown state before you run an integrity check if you can do so.
Procedure
To run Eseutil /G
The basic command line syntax to run an integrity check with Eseutil is:
ESEUTIL /G database_filename.edb
For example:
ESEUTIL /G priv1.edb
Note
There must be disk space available to the equivalent of 25 percent of combined size of the Exchange database (.edb) and streaming database (.stm) files. The streaming database must be in the same folder as the .edb file.
You may be faced with the following scenarios when you run an Eseutil /G integrity check on the database:
Insufficient local drive space for temporary database
Ignoring streaming database mismatches
Insufficient Local Drive Space for Temporary Database
Many of the integrity checks involve reconstructing indexes and other data inside a temporary database. Afterward, a comparison is done between the two databases.
If you do not have free disk space equivalent to 20 percent of the size of the files being checked, then there is greater likelihood of running out of disk space during the check. You can add this switch to the command to redirect the “scratchpad” database to a drive with more space:
/Tpath_to_temporary_database
For example:
ESEUTIL /G priv1.edb /T\\Server2\d$\scratchpad.edb
Note
There is no space between the /T switch and the path specification. You can also use an ordinary drive letter path specification if desired.
Ignoring Streaming Database Mismatches
Exchange will detect whether a database and its streaming database are synchronized with each other. If they are not in synch, you can ignore the problem and force an integrity check to proceed regardless, by using the /I switch. For example:
ESEUTIL /G priv1.edb /I
If there are no SLV files (.stm or streaming database files) checksum errors reported in the .raw file output, then while the two files may be formally out of synch, the likelihood of successful repair and reintegration of the streaming file data is high.
Command line reference
The following is the command line reference that can be obtained by running Eseutil /? and then G from the Exchsrvr\bin folder:
INTEGRITY:
DESCRIPTION: Verifies integrity of a database.
SYNTAX: ESEUTIL /g <database name> [options]
PARAMETERS: <database name> - filename of database to verify
OPTIONS: zero or more of the following switches, separated by a space:
/s<file> - set streaming file name (default: NONE)
/t<db> - set temp. database name (default: TEMPINTEG*.EDB)
/f<name> - set prefix to use for name of report files
(default: <database>.integ.raw)
/i - bypass the database and streaming file mismatch er
ror
/8 - set 8k database page size (default: auto-detect)
/o - suppress logo
NOTES: 1) Integrity-check does not run database recovery. If a
database is in a "Dirty Shutdown" state it is strongly
recommended that before proceeding with an integrity-
check, recovery is first run to properly complete
database operations for the previous shutdown.
2) The /i option ignores the signature mismatch error if
the database and streaming file do not match each other.
For More Information
For more information, see the following topics in the Exchange Server Database Utility Guide: