Applies to: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2006-08-28

The Exchange Server Database Utilities (Eseutil.exe) repair mode corrects problems in the transport server queue database, mailbox database, and public folder database at the page and Extensible Storage Engine (ESE) table levels. However, Eseutil does not correct problems at the application level. Therefore, after you repair a mailbox or public folder database using Eseutil, we recommend that you run the Information Store Integrity Checker (Isinteg.exe) to repair the database at the application level.

Note:
Isinteg is not applicable to Exchange Hub or Edge Transport server queue databases. For more information about transport server queue databases, see Working with the Queue Database on Transport Servers.

During repair, it may be necessary to discard rows from tables or even entire tables. After completing the ESE-level repairs, it is necessary to perform an application-level repair to correct problems that may now exist at the application level because of missing data. You can use Isinteg to perform this application-level analysis and repair on mailbox and public folder databases. The following example illustrates how the repair mode in Eseutil works.

For example, a table in the database stores messages for all mailboxes. A separate table is used for each user's Inbox folder. Suppose that a message is lost when using Eseutil to repair the message table. Eseutil does not correlate the message with the reference to it in each Inbox folder because Eseutil does not have the information about the cross-table schema of the application. Isinteg is needed to compare the repaired message table with each Inbox to remove a lost message from the Inbox folder.

Eseutil looks at each Exchange database page and table and ensures consistency and integrity within each table. Isinteg repairs a mailbox or public folder database at the application level and ensures the integrity of the relationships between tables.

Repairing databases involves the following three stages, in this order:

  1. Run Eseutil in /P mode to perform a database page-level and table-level repair.

  2. Run Eseutil in /D mode to fully rebuild indexes and defragment the database.

  3. Run Isinteg only on the mailbox or public folder database to repair the database at the application level.

    Note:
    Always back up your mailbox, public folder, or transport server queue database before running a repair against it, because the repair results in some data loss. For example, in some cases, when the system metadata might get lost, the database is not able to be mounted.

Placing a Repaired Database Back Into Production

It is a judgment call whether to leave a repaired database permanently in production. The policy of many administrators is to use repaired databases only for data salvage. Administrators move mailboxes as soon as possible to another database, or merge the data from a repaired database into a known good database.

Both Eseutil and Isinteg (used on mailbox or public folder databases) generate detailed repair log files that list the errors found and corrected. For more information about causes and consequences of specific errors, see Reference for Common Eseutil Errors.

Eseutil /P Best Practices

Use Eseutil /P when you cannot restore a database from backup, or when you cannot fully roll transaction logs forward.

Note:
If you cannot roll transaction logs forward, consider a hybrid strategy. You can restore a working version of the database from backup, repair the damaged database in the recovery storage group, and merge the two databases.

We recommend that you follow these best practices when repairing a database:

  • Do not allow a repaired database to remain in production for an extended period of time.

  • Do not use the Eseutil repair option when you can restore from backups without any data loss.

  • You can run Eseutil repair mode on a mailbox or public folder database to correct an error -1018. Eseutil discards the -1018 page and performs the repair. A Microsoft WebCast for Microsoft Exchange Server 2003 discusses how to correct an error -1018. For more information, see Microsoft Knowledge Base article 812531, Support WebCast: Microsoft Exchange: Understanding and Resolving Error -1018.

For More Information