Among the different tasks an Exchange Administrator is expected to perform daily, the tricky one is to ensure that the server keeps running without glitches. And no matter how simple it may seem, it is not an easy task. Unexpected technical, software or human errors keep cropping up that interrupt the normal flow of activities on the Exchange server. Thus, prompting the Exchange administrator to take immediate measures and get everything back to working. Among those measures include the knowledge of handy tools and utilities that can save the day when common fixes don't resolve the problems. This article focuses on ESEUTIL - one of the most widely used inbuilt command-line utilities that can be used to repair Exchange 2010 database in situations of Exchange database errors.
ESEUTIL is a command-line utility, aimed at repairing minor issues within the Extensible Storage Engine (ESE) or Jet Engine of Exchange database. The utility is located in the Bin Directory and is used in database operations such as integrity check, offline defragmentation, database repair, checksum test, etc. It is automatically installed, along with the Exchange Server. It works on the dismounted database. There are several switches that can be used with the utility to perform different operations.
Here's a list of ESEUTIL switches:
/d – Defragments the offline database to reduce its gross size on the disk by discarding most empty pages and rebuilding indexes.
/p – Repairs corrupt Exchange database by discarding pages that cannot be repaired. This mode can result in data loss. Moreover, it fixes individual tables but not the links between the tables.
/c – Displays restored log files and control hard recovery after restoration from legacy online backups.
/r – Replays transaction log files to restore a database to internal consistency.
/g – Verifies page level and ESE level logical database integrity.
/m – Displays database file headers, transaction log files, checkpoint files, page header information, database page allocation, and metadata.
/k – Verifies checksum on all database pages, log files, and checkpoint files.
/y – Performs a fast copy of large files.
The ESE or Jet Engine of an Exchange database includes data served in "Pages". In Exchange 2010, each page size is 32 KB. The Exchange database (EDB) file contains multiple such pages.
Whenever a read/write/update operation (or transaction) occurs on the database, it is first written to the memory, then to the log files, and finally to the database. This process is known as Write-Head Logging. For a database to be consistent, all transactions recorded within the log files must be committed to the database (EDB files) before the database is shut down. Only then is the database regarded as "detached" from the log files and in a clean shutdown state. However, if the server shuts down unexpectedly (server crash or due to power failure) while there are still transactions pending to be committed, the database is considered to be "attached" to the log files and in a dirty shutdown state.
In such a case, on restarting, the server performs automatic Soft Recovery where log files are replayed using the Checkpoint file to make the database consistent again. This works in most of the cases. However, if the problem is not fixed automatically, the administrator can manually perform a hard recovery by using the ESEUTIL utility. In cases of page-level database corruption, ESEUTIL comes in handy to correct things.
How to Repair Exchange 2010 Database with ESEUTIL?
Follow the stepwise instructions to repair the Exchange Server 2010 database by using ESEUTIL:
Step 1: Run eseutil /mh command to check if the database is consistent or not.
If the database shutdown state is 'Clean', move all the log files from the transaction logs folder and then mount the stores.
If the database shutdown state is 'Dirty shutdown', check if the log files mentioned as "Required" are available or not.
Step 2: Check the status of "required" log files with the command eseutil /ml.
This command will check the health of all log files at the location.
Step 3: If the log files are healthy, Soft Recovery will put things back into place. Perform a soft recovery with Eseutil /r command:
Eseutil /r /l "Path of the log files" /d "Path of the database"
After completion of the command, mount the stores.
Step 4: In case you encounter JET_errAttachedDatabaseMismatch (error - 1216) after a few seconds, run soft recovery with /i switch at the end to override the EDB-STM mismatch.
Step 5: If log files are not healthy or are unavailable, restore the database from the backup or perform a hard recovery.
Step 6: If you're restoring from backup, a file called restore.env is created at a temporary location, when the restoration completes. This file contains the logs that were backed up without being committed to the backed up database.
Step 7: Take a copy of this temporary folder and store it somewhere safe.
Step 8: Now perform Hard Recovery from the Bin folder with this command:
Eseutil /cc "Path of the restore.env containing folder" >
Step 9: Now, again check the temporary folder that contained restore.env file. If the hard recovery was successful, the folder would be empty.
Step 10: Now mount the stores successfully.
Step 11: If a valid backup is not available, perform Hard Repair with eseutil /p command.
Step 12: Choose "OK" on any prompt that you get.
Note: When doing a hard recovery, note the prompt as it means that you are accepting data loss.
Step 13: This is the complete repair process. Once these steps complete successfully, to finish up, defrag the database offline with eseutil /d command.
Step 14: Now mount and demount the store immediately and then use the ISInteg tool to fix any issues - isinteg –s -fix –test –alltests
Step 15: If the database is still not mounted, try Stellar Repair for Exchange software to repair corrupt Exchange 2010 database. You can download the software from here:
This is the complete process of repairing the Exchange 2010 database using the inbuilt ESEUTIL tool. However, this tool might not be able to fix issues within EDB files in all cases. Moreover, it might result in data loss.
To overcome these limitations, use an automated EDB repair software such as Stellar Repair for Exchange. This reliable application repairs even severely corrupted/damaged EDB files and recovers inaccessible mailboxes within minimum time. The interactive GUI makes it easy to work with and it is compatible with a wide range of Exchange versions. Moreover, the product also offers features such as exporting mailboxes to Live Exchange or Office 365, selective mail recovery, and more. You can check software steps to repair corrupt EDB file from here.
Tips to avoid downtime in Exchange server. Read the helpful reference to spot several culprits that could hinder the health of your mailbox database and corrupt it. Fix all problems in Exchange server like bad Windows update, third-party application insta
How to Fix ‘PST File is not an Outlook Data File’ Error?
This article explains to get back all their old mail and restore the original mail from crashed Exchange server. Explore all technical know-how or the right tools in hand to have a quick recovery with minimal downtime, for the Exchange Admins.
Use latest email header forensic analysis techniques for identification of genuine sender, time, or recipient of the emails. Read this guide also to understand email header fields to verify the trustworthy sender on email platforms like Gmail, Outlook etc
Fix ‘Outlook Repair Tool keeps crashing’ problem in Outlook smoothly. You can also fix the problem manually and by using a professional Outlook Repair Tool. Let’s look at all possible fixes.