Check Exchange 2000/2003 Server Database Integrity

by Daniel Petri - January 7, 2009

How can I use the ESEUTIL utility to detect file header damage in Exchange 2000/2003?

MS KB 825088 has more info:

Exchange 2000 and 2003 use a checksum procedure to confirm the data integrity of pages that are in the database. The ESEUTIL tool in Exchange 2000/2003 includes a /K switch that you can use to verify the page-level integrity of the information store databases.

Note: The integrity check does not run a database recovery. If a database is inconsistent or is in a "dirty shutdown" state, Microsoft recommends that you perform a recovery operation to make sure that the database operations are completed correctly. After you perform the recovery operation, you can use the ESEUTIL tool to perform the integrity check.

To detect damage to file headers, follow these steps:

  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 to your situation), and then press ENTER:
  4. To check the integrity of the public information store database (the Public Folder store), type:
eseutil /k "c:\program files\exchsrvr\mdbdata\pub1.edb"

The following information is a sample output file that appears after you run the previous command:

  1. To check the integrity of the private information store database (the Mailbox store), type:
eseutil /k "c:\program files\exchsrvr\mdbdata\priv1.edb"

The following information is a sample output file that appears after you run the previous command:

  1. You can also use the ESEUTIL /k command to verify the checksum integrity of the transaction logs when all the databases in the storage group are dismounted. The following command is an example:
eseutil /k "C:\Program Files\Exchsrvr\mdbdata\e00.log"

The following information is a sample output file that appears after you run the previous command to verify the checksum integrity of the transaction logs:

Note: The database you wish to check must be taken offline (i.e. dismounted) before attempting to perform the integrity checking operation. When you run ESEUTIL against a Microsoft Exchange computer where it's database is still mounted you will receive the following error message:

Error: Access to source database 'c:\program files\exchsrvr\mdbdata\pub1.edb' failed with Jet error -1032.

Operation terminated with error -1032 (JET_errFileAccessDenied, Cannot access file, the file is locked or in use) after 30.83 seconds.

If the database is still mounted, use the following steps to dismount the database, and then run ESEUTIL:

  1. Start Exchange System Manager.
  2. Right-click the database that you want to dismount.
  3. Click All Tasks, and then click Dismount Store.

If you wish to use the ESEUTIL /k option on log files you'll need to stop the Microsoft Exchange Information Store service. To do so follow these steps:

  1. Start the Services applet in the Administrative Tools folder.
  2. Right-click the Microsoft Exchange Information Store service.
  3. Click Stop.

After the integrity check is over you must start the Microsoft Exchange Information Store service. To do so follow these steps:

  1. Start the Services applet in the Administrative Tools folder.
  2. Right-click the Microsoft Exchange Information Store service.
  3. Click Start.

Links

How To: Use the Eseutil Utility to Detect File Header Damage in Exchange 2003 - 825088



Join The Petri Insider - Weekly IT Tutorial and Tips, Whitepaper and Webinars