When an Exchange database gets corrupt, then there are two ways to get this database back to the normal state:
- Restore from Backup: This includes restoring the database content from its backup.
- Repair: To repair Exchange database with Microsoft suggested built-in repair utilities – Eseutil and Isinteg.
Both methodologies have their own set of pros and cons. Though restoring the database from Exchange backup is an easy and fast way to retrieve database components, it may not be successful when Exchange database backup is not up-to-date.
The next option is to repair Exchange 2013 or 2016 database via Eseutil or Isinteg. However, these utilities help fix the Exchange database in those cases where the level of corruption is minimal. Eseutil helps in recovering the content of the database with the help of soft or hard recovery, depending on the damage to the database.
Before opting for Exchange database repair via Eseutil, take care of the following points:
- Take a backup of the current EDB database and Log files at a safe location. This backup helps in recovering the database in case the actual database gets corrupt while repairing it with Eseutil commands.
- Ensure that there is adequate free space on the disk to perform successful data recovery. A repaired Exchange 2013 or 2016 database acquires up to 20% to 30% storage space. If this situation is not met, make sure that the Windows command line should include a command to redirect the repaired Exchange Database file to another location.
However, in the event of Eseutil and Isinteg failure, you can use Stellar Repair for Exchange to recover and restore mailboxes from inaccessible, dismounted, damaged, or corrupt Exchange 2007, 2010, 2013, 2016, 2019 database. By using the software, you can avoid data loss that may occur due to hard recovery via Eseutil /p. Plus, the software lets you extract mailboxes from the Exchange database and save them in an importable PST file format. You may also import the extracted mailboxes directly to the Live Exchange server by using this Exchange recovery software.
You can check the amount of free space by searching your application log for Event ID 1221.
Alternately, use Get-MailboxDatabase to get the free space in the database:
Get-MailboxDatabase -Status | Sort-Object DatabaseSize -Descending | Format-Table Name, DatabaseSize, AvailableNewMailboxSpace
Check the amount of free space by searching your application log for Event ID 1221. Alternately, use Eseutil/MS for the current estimate.
CAUTION: Eseutil is a repair tool and not intended for maintenance tasks. Thus, you should avoid running it unless you are forced to run ESEUtil /P in the absence of backups or server crashes.
Exchange Database Repair via Eseutil is used to fix the following errors:
- Error in Provisioned Folder: An error occurs inside a folder structure for a particular or multiple mailboxes. Such a folder is known as Provisioned Folder.
- Error in Search Folder: Though Search Folders are meant to detect and resolve the available corrupt files, there are instances when Search Folders are identified with errors.
- Error in Specific Folders: The displayed content in specific folders gets associated with errors due to which View Folders fail to return correct results.
- A particular folder is unable to return the correct item count. The Aggregate Counts on that specific folder cannot yield actual values.
- Unable to mount database error
Apart from these errors, the Exchange database may get corrupt due to several other reasons, such as improper system shutdown, program malfunction, virus attack, software/hardware failure, and Jet Engine failure.
Repair Exchange 2013, 2016, 2019 Database using Eseutil
Eseutil and New-MailboxRepairRequest commands can scan, repair, and defrags a low level of corruption in the Exchange database. So the commands should be performed at the time when:
Repairing Exchange Database via Eseutil and Isinteg involves the given processes:
- Run Eseutil /mh command – To get all the information on the database and to see that the database is in Dirty Shutdown or Clean Shutdown state
- Run Eseutil/r command – To perform a soft repair on the database
- Run Eseutil/p command – To perform hard recovery
- Run New-MailboxRepairRequest – Defrag process for the database
Eseutil – Syntax and Commands
When the Exchange database is not restored from backup and you cannot roll Transaction Logs forward, try repairing the Exchange database by using Eseutil /p command.
Eseutil is located in the \exchsrvr\bin directory created when you install Exchange Server.
This command resolves corruption in Exchange database files by deleting the irreparable database file pages. Use the following syntax to repair Exchange Database (EDB):
eseutil /p <DBFileName.edb>
Eseutil/p command can fix the individual database tables, but this Exchange utility cannot establish links between them.
Warning: The above command performs the hard recovery on the database. The hard recovery process may result in data loss.
Defragmentation with New-MailboxRepairRequest
Defragmentation reduces the size of the database by eliminating the white spaces available in the Exchange database. To perform this process, run the below command by using the PowerShell Management Shell. This process will take a considerable amount of time, depending on the size of the database and the performance of the disks.
New-MailboxRepairRequest -Mailbox <MailboxIdParameter> [-Archive <SwitchParameter>] <COMMON PARAMETERS>
Verify corruption in the database with Eseutil /mh command
To check if the recovery process is successful or not after Eseutil soft or hard recovery, use the eseutil /mh parameter. If it is successful, the database state will show Clean Shutdown.
For any activity, it is necessary to verify that the Exchange 2013/2016 database repair via Eseutil has resulted in resolving the error.
Though almost all Exchange administrators are aware of Eseutil and New-MailboxRepairRequest commands, they are also mindful of the limitations of these commands. There could be instances where the Exchange utilities fail to work, especially in repairing severely corrupt Exchange database. Some common Eseutil failure errors that you may encounter while recovering Exchange 2013 or 2016 database can lead to excessive downtimes. Some of these errors are as follow,
- Exchange 2013 Eseutil error 1216
- Eseutil crashes in Exchange 2013
- Eseutil /r /l /d Exchange 2013 does not proceed
- Exchange 2013 Eseutil -528 error
- Eseutil /r Exchange 2016 error: Access to source database ‘south’ failed with jet error -1811
- Exchange 2013 Eseutil recovery has indicated threat there might be a lossy recovery option
It is suggested that Microsoft Exchange should not be exposed to massive downtimes, else it may result in disruption of business communication. To prevent such disruptions, MVPs and experts recommend a competitive Exchange database recovery software such as Stellar Repair for Exchange. The software can repair even severely corrupt Exchange database files, irrespective of the Exchange versions. The software supports Microsoft Exchange server 2016, 2013, and all other Exchange versions.
The Exchange is the lifeline of business communication. Therefore, it has to be up and running 24*7. Despite this fact, Exchange administrators have to face situations where Exchange goes offline. At such times, the most feasible option is to analyze the cause behind such an issue and resolve it at the earliest. If it is due to severe Exchange database corruption, then trying Eseutil and New-MailboxRepairRequest command to repair Exchange database 2007/ 2010/ 2013/2016/ 2019 may not be practicable. Instead, use Stellar Repair for Exchange to repair severely corrupt database files. The software supports Exchange Server 2019, 2016, 2013, and lower versions.