I recently had the fun of recovering an Exchange server which had run out of disk space and "stopped working". I'm not sure exactly what they did before passing it on to me, but at that point the databases were not mounting. They had two databases, "Mailbox Database.edb" about 9GB and "Public Folder Database.edb" about 9MB, Both in the "First Storage Group". A little more investigation and a bit of eseutil /mh showed that both databases were in the Dirty Shutdown state and there were logfiles missing. Interesting.
The last backup was almost a day old, some after a chat with the client they wanted us to try and restore the corrupted mailbox database with a little help from Microsoft support. So the steps from there were:
1) Make a backup copy of the "First Storage Group" directory somewhere.
2) As there were logfiles missing, we could not recovery the databases by replaying the logs. Therefore we had to repair using eseutil /p. This is a last resort really since it will just start dropping corrupted file sections (i.e. mail). Be prepared for this to take a looooong time.
eseutil /p "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Mailbox Database.edb"
eseutil /p "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Public Folder Database.edb"
After it should give you success or failure. I'm not sure of the steps you take for failure as ours succeeded.
3) Check the state of the databases:
eseutil /mh "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Mailbox Database.edb"
eseutil /mh "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Public Folder Database.edb"
For both databases the state should be "Clean Shutdown"
4) Now move everything (logs, .jrs, .chk, CatalogData, etc, everything) except for the .edb files out of the "First Storage Group" directory. I moved them into a sub-directory called "Old logs".
5) In Exchange Management Console, mount and then dismount the databases. This will cause them to create a new set of accompanying files.
6) Defragment both of the databases:
eseutil /d "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Mailbox Database.edb"
eseutil /d "C:\Program Files\Microsoft\Exchange Server\Mailbox\First Storage Group\Public Folder Database.edb"
7) Run a logical check on the databases. Run for both databases.
isinteg –s servername –fix –test alltests
8) Assuming that everything goes well here, you should be able to remount the databases and have everything work successfully.