Today I had the challenge to get a corrupted Exchange 2010 database working again. The customer had a problem with the hard disk space of the Exchange 2010 server over the weekend (it was running out).
After fixing the problem of missing disk space, one of the Exchange databases could not be mounted, mounting failed with a message in the event log that a checksum in the database is no longer correct. Unfortunately the customer did not have a current backup (3 days old) and Circular Logging was not activated, so it was not possible to restore the log files.
To get the database up and running again I repaired the database with the following command:
Eseutil /P "G:\Exchange Database\Mailbox Database 02.edb" /Tx:\TEMPREPAIR.EDB
Using the /P option will most likely result in data loss in the database, as it will remove defective parts. The parameter /T specifies the location (x:\TEMPREPAIR.EDB) of the temporary database, which serves as a cache during the repair run. The repair run took about 6 hours for a 500 GB database and was completed successfully.
When I tried to mount the database again, it failed. The reason were the files (.log etc) which were still in the same directory as the Exchange database. I moved all files except the .edb to a subdirectory and tried again and was successful. The database could be mounted again.