How to Run Eseutil /K in Checksum Mode


This section explains how the Eseutil /K checksum mode works on Exchange Server 2003 databases, and covers basic operation procedures. Exchange 2003 uses a checksum procedure, by using the /K switch, to confirm the data integrity of pages in the database. You can also use the switch to perform a checksum procedure on a streaming file. For more information about how to use Eseutil in checksum mode, see Eseutil /K Checksum Mode.

Before You Begin


Before you use the Eseutil tool, use Exchange System Manager to dismount the stores that you want to examine.

The checksum feature does not run a database recovery. If a database is inconsistent, or in a "dirty shutdown" state, we recommend that you perform a recovery operation to make sure that database operations are completed correctly. After you perform the recovery operation, you can use the Eseutil utility to perform the integrity check.


To do a Eseutil /K checksum with basic syntax

  • Enter this basic syntax at the command line to checksum an ESE database, streaming database, transaction log, or checkpoint file:

    ESEUTIL /K <filename>


    Replace <filename> with the path and name of the file that you want to checksum

The following optional command-line switches are associated with the /K switch:

  • /s<filename> Use this switch to specify the streaming file name. The default setting is none.

  • /t<db> Use this switch to specify the temporary database name. The default name is Tempchksum*.edb.

  • /e Use this switch if you do not want to perform a checksum procedure on the database file.

  • /i Use this switch if you do not want to perform a checksum procedure on the streaming file.

  • /o Use this switch to suppress the Microsoft logo.

To use Eseutil to checksum only the .EDB or .STM file

  1. Click Start, and then click Run.

  2. In the Open box, type cmd, and then click OK

  3. Switch to the C:\Program Files\ExchSrvr\Bin folder, type one of the following commands (as appropriate for your situation), and then press Enter:

    • To check the integrity of the public information store database:

      ESEUTIL /K "c:\program files\exchsrvr\mdbdata\pub1.stm" 
    • To check the integrity of the private information store database:

      ESEUTIL /K "c:\program files\exchsrvr\mdbdata\priv1.stm" 

If you want to save time by checksumming only the files in question, you can use the /E (ignore EDB) or /I (ignore stm) switches. If you use the /E switch, the checksum table for the streaming database is read from the edb file, but no other edb file pages are checksummed. Using the .stm file name in checksum mode will checksum only the first two header pages of the streaming database. For example:

ESEUTIL /K priv1.edb /E (checksums stm file only)

ESEUTIL /K priv1.edb /I (checksums edb file only)

ESEUTIL /K priv1.stm (checksums stm header pages only)

Note   You cannot checksum the whole streaming file unless the database files are in a Clean Shutdown state. This is because the table storing the checksums in the streaming file is in the edb file. If the database is not in Clean Shutdown state, you cannot know for sure that this table is completely up to date and valid.

Command line syntax

The following is the command line reference that can be obtained by running eseutil /? and then K from the Exchsrvr\bin folder:

    DESCRIPTION:  Verifies the checksums of a database, streaming file,
                  checkpoint file, or log file (or set of log files).
         SYNTAX:  ESEUTIL /k <file name> [options]
     PARAMETERS:  <file name> - file name 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: TEMPCHKSUM*.EDB)
                  /p<x>    - add artificial 1 second pause once every x I/O's
                             (default: no pause)
                  /e       - don't checksum database file
                  /i       - don't checksum streaming file
                  /8       - set 8k database page size (default: auto-detect)
                  /o       - suppress logo
          NOTES:  1) This operation does not run database recovery. If
                     the database file (.edb) is in a "Dirty Shutdown"
                     state it is not possible to verify checksums in the
                     streaming file (.stm).
                  2) If the file is not a database file, the options are
                  3) If the file is a streaming file, only the header is
                     verified and not the data pages.
                  4) The pause (/p) option is provided as a throttling
                     mechanism. It only applies when verifying checksums
                     of a database file.

For More Information

For more information, see the following topics in the Exchange Server Database Utility Guide: