Microsoft Exchange Server works with different files to maintain consistency and health of the databases in the setup. An Exchange Server creates EDB file, which is the main database file that holds all the information. To prevent the file from being locked, corrupted, and to keep high performance of the data being accessed, the database uses a combination of transaction log files and stores information in memory. It uses both transaction logs and memory as a buffer to increase performance and prevent the database from getting corrupted. Once an application backup of the server is executed and a healthy backup is taken, the database purges the transaction logs since these were committed to the database during a backup.
The transaction logs cannot be purged manually as these hold temporary data before being committed to the database. If a transaction file is manually deleted, you may encounter data loss and even corruption in the database.
As mentioned, in a normal scenario, after taking backup with a backup software which is built for and supports the Exchange Server version you have installed, the transaction logs are automatically purged during the daily backups. If the transaction logs keep increasing and never purged, it means that there are issues with your Exchange Server, backup application, or there is something which is locking or preventing the Exchange to purge the files.
Why Do Exchange Server Databases Get Corrupt?
There could be many reasons that may lead to corruption in database. Some common ones are:
- Hardware failure (storage, motherboard, or others)
- Sudden loss of power which will not allow the database to safely shut down
- Malware, virus, or ransomware attack
- Issues during patching or update installation
- Consequences from no disk space on the data or log partition/drive
What Happens If a Database Gets Corrupt?
Usually when a database file (EDB) is corrupt, there could be items in the database which are damaged. If a transaction file is corrupt or missing, Exchange database will fail to mount. You can use the native tools – Eseutil for Repairing Exchange databases.
In this article, we are going to explore one of the many errors message that could occur during such situations.
When the database fails to mount and you use EseUtil to check the status of the database, you may get the following error:
Error: Access to source database ‘.edb’ failed with Jet error -1811.
Operation terminated with error -1811 (JET_errFileNotFound, File not found)
This error occurs when you run the command with the following parameter and you run out of disk space.
Eseutil /mh <database.edb>
Since Exchange database is not mounted, you will immediately know that the issue is critical since all the users will start complaining that they cannot send/receive their emails.
Ways to Fix the Error: Operation Terminated with Error -1811 (JET_errFileNotFound, File Not found)
Here are some ways to fix the issue at the earliest and restore the services:
Perform Soft Recovery
With EseUtil, you can perform a soft or hard recovery. The soft recovery would help you to fix small, corrupted items in the database. You should try it first to fix your database. You should never try to run a hard recovery first. This should always be used as the last resort.
To perform soft recovery, run the following command:
Eseutil /r /d "<path to your database file>"
An example would be:
Eseutil /r /d "M:\ExchangeDatabases\DB01"
Depending on the size of the database, the process may take some time. Once done, run the EseUtil with the /mh parameter to check the status of the database. If it shows the status as Healthy Shutdown, you can mount Exchange database.
Perform Hard Recovery
If the soft recovery does not fix the error: Operation terminated with error -1811 (JET_errFileNotFound, File not found), you need to perform the hard recovery.
Caution: You should take a backup of the database before proceeding with hard recovery. You have to accept data loss as hard recovery will purge any data or information that is deemed corrupted. Also, after the hard recovery, your database will have a hard coded tag. If you request Microsoft to assist after you run it, you will not be supported as it breaches the SLA.
To perform the hard recovery, run the following command:
Eseutil /p "<path to your database file in full>"
An example would be:
Eseutil /p /d "M:\ExchangeDatabases\DB01\db01.edb"
After this, you can mount the database. However, it is not 100% sure that this would fix the problem.
Restore From Backup
You can also try to restore Exchange database from a previous healthy backup. However, you will end up losing all the data post the backup.
Use a Third-Party Tool
As an alternative, you can use Stellar Repair for Exchange. The application can open corrupted databases of any Exchange Server version. You can recover all the mailboxes and public folders and save them in PST and other formats. You can also export items and mailboxes granularly to a live Exchange Server database or an Office 365. Stellar Repair for Exchange will drastically reduce the recovery time of your services and reduce the data loss.
Was this article helpful?