Problem:
Exchange is down, mailboxes show dismounted, event viewer show a ton of logs including
- Event ID 9519, The following error occurred while starting database <database name>: Log file is corrupt.
- Event ID 477, The log range read from the file “<log location>” at offset <> for <> bytes failed verification due to a range checksum mismatch
Cause: This can occur when one of the log files becomes corrupt. The corruption can be caused by a hard shutdown or a sudden loss of power.
Solution:
THIS SOLUTION MAY CAUSE SOME DATA LOSS. PROCEED WITH CAUTION.
Exchange 2010 Instructions
Verify that the database(s) are unmounted in the Exchange Management Console
Open an elevated command prompt
- Run
ESEUTIL /mh "<full path of the .edb file for the database>"
- This should produce a lengthy output. Look for and note the following entries.
- State: Mostly likely this will say dirty
- Log Committed:
- Log Required:
- Browse to the edb file location
- Find the log required noted above. We can assume that any data from this “Date Modified” and forward is going to be lost
- Shutdown any exchange services and copy the database folder to another location for a backup
- Run
ESEUTIL /p "<full path of the .edb file for the database>"
- Click Yes to proceed understanding that data loss is possible
- Run
ESEUTIL /D "<full path of the .edb file for the database>"
- Run
ESEUTIL /mh "<full path of the .edb file for the database>"
- Verify state now says Clean Shutdown
- Browse to the edb file location and move any *.log files into a subfolder called old log files
- Start Exchange Services
- Open Exchange Management Console and mount the database
- Immediately begin a backup of this data