Among all the tasks, an Exchange Admin is expected checking the Exchange Servers on daily basis that is they working properly without any glitch or not. Sometimes, there also occur the unexpected human errors, technical, software or keeps interrupting normal flow of any activities performed on Exchange server. The MS Exchange administrator needs to take preventive measures and correct everything as earlier. Among these precaution measures, lies knowledge of all the handy utilities that saves entire day when the common fixes does not work. This entire article focuses on an inbuilt command line utility that is used to restore MS Exchange 2010 database in case of database errors in Exchange. We’re simply talking about the ESEUTIL program.
The Inbuilt Utility ESEUTIL and its Associated Switches
ESEUTIL is basically termed as command line software that solely aims at repairing the minor issues inside Jet Engine of Exchange database, or the Extensible Storage Engine (ESE). The software is generally available in Bin Directory & used mainly in database operations like offline defragmentation, checksum test, integrity check, database repair, many more. It is a built-in program and is automatically installed with the MS Exchange Server. It generally works on the dismounted database. There are many switches that are used along with software for performing the different operations.
ESEUTIL Switches and its Brief Overview
- /d – Defrag: It defragments an offline database and reduces the gross size on disk by discarding the empty pages and rebuilding the indexes.
- /p – Repair: It Repairs the corrupt MS Exchange database by simply discarding the pages that are not possible to be repaired. It results in the data loss. In addition to it, the switch fixes the individual tables excluding links between tables.
- /c – Restore: Previews the restoration log file and even controls the hard recovery after restoring from the legacy of online backups.
- /r – Recovery: Replays the log files of transaction for restoring database to the internal consistency.
- /g – Integrity: Verifies the ESE level logical database integrity and page level.
- /m – File Dump: Generates the transaction log files, database file headers, checkpoint files, metadata, page header information, database page allocation.
- /k – Checksum: Verifies the log files, checkpoint files, and checksum on all database pages.
- /y – Copy Files: Copies the large files that are big in size.
Need of the ESEUTIL Command
After understanding different aspects of the command-line tool i.e., ESEUTIL, let’s figure out the actual need of the command. The Jet Engine or ESE of MS Exchange database comprises of the data served in “Pages”. In case of Exchange 2010, every page size limit is 32KB and EDB file has many pages like this.
Whenever a transaction like write/update/read operation occurs on database, it is first jotted in memory, and afterwards to log files. When the entire process completes, it is finally written to the database. The process is termed as Write-Head Logging. For a consistent database, each and every transactional is recorded inside log files and is committed to database (EDB files) before shutting down of the database. In those cases, database is regarded as “detached” from the log files and in a state of clean-shutdown. In case the server shuts down unexpectedly, and the transactions are pending and needs to be completed, then in such case, the database is assumed to attached, to log files and afterwards shuts down in a dirty state i.e., termed as dirty shutdown.
In this case, while restarting, the server performs an automatic Soft Recovery in case the log files are again replayed using the Checkpoint file for making the database consistent. It works in many cases, and in case the problem is not fixed automatically, then administrator needs to manually perform the hard recovery of the files using ESEUTIL utility. In the case corruption of page-level database, the built-in utility i.e., ESEUTIL can be considered as correct way to restore the Exchange Server.
Repairing the Exchange 2010 Database via ESEUTIL
- Step 1: Make sure that the Exchange database is consistent or not using the command: eseutil /mh
- Step 2: Check the result of the above command, follow steps mentioned below:
- CASE 1: In case the database shuts down in a CLEAN STATE, move the entire log files from the folder of transaction log and mount the stores.
- CASE 2: The second situation occurs whether the database shutdown state is DIRTY STATE, check whether the log files mentioned are REQUIRED, AVAILABLE OR NOT.
- Step 3: Make sure that the users check the status of the REQUIRED LOG FILE log files using command: eseutil /ml.
//The command checks health of the log files present in the particular location.
- Step 4: In case the log files are healthy, then the Soft Recovery will puts the things back to place. In those cases, perform soft recovery using the following command:
Eseutil /r /l "Path of the log files" /d "Path of the database"
//Once completed the execution of the command, mount the entire store
- Step 5: Another case may arose, where the users encounter another error i.e., JET_errAttachedDatabaseMismatch (error -1216). In this case, after few seconds, run the soft recovery via /i switch at end for overriding the EDM-STM mismatch.
- Step 6: If the log files are not in a healthy condition or these files are unavailable, then the database is restored from the backup or in such case, hard recovery can be performed.
- Step 7: While restoring from the backup, and once the restoration process is completed, in that case a file namely restore.env is created on temporary location. This file comprises of the log that are backed up without committed to back up entire database.
- Step 8: Take copy of the temporary folder and save it somewhere in safe location.
- Step 9: Perform Hard Recovery from Bin folder via command: Eseutil /cc "Path of the restore.env containing folder"
- Step 10: Again check temporary folder containing restore.env file. In case the hard recovery is successful, folder will be empty.
- Step 11: Successfully mount the stores.
- Step 12: If valid backup is currently unavailable, then in that case perform the Hard Repair using command: eseutil /p
- Step 13: Opt for OK on prompt available.
- Step 14: This shows the repair process completely. After successful completion of the steps, to finish up the process, defrag offline database using command: eseutil /d
- Step 15: Afterwards, mount & demount store immediately and make use of the ISINTEG tool to fix all the issues using command isinteg –s -fix –test –alltests
For instance, if all the commands fail in repairing the Exchange Database, then users must opt for an Expert Solution to resolve the error. Moreover, the commands are not capable of recovering, restoring the Exchange Database. In addition to it if the files present in the Public and Private Folders are not been able to be repaired after deletion, then in such case using a third party utility must be advisable.
In case the database is not mounted at all, then give a try to SysTools Exchange EDB Recovery Software for repairing corrupt Exchange 2010 database. The tool has few of the tremendous features that can easily manage all the things properly:
- The tool can be termed as a reliable solution to recover the Exchange Databases
- It easily restores the data from the Public, Private EDB folders
- Its interactive Graphical User Interface makes it operable on all Exchange versions
- The tool even renders with date and time based filtering to restore the emails
- Easily transfers the live mailboxes of MS Exchange to Office 365 easily