Hopefully an Exchange guru can save my skin here... I've got an Exchange 2007 server (or, at least I had) running as a virtual image in Hyper-V for a few months. All was well in the beginning, I took a copy of the .vhd file prior to enabling Exchange to receive/send email, so I had a known good copy of the whole server image from when there was no mail data in the Exchange database.
Of course, in a pique of stupidity, I never took another backup at any point in the interim and, just a couple of days ago, the virtual image somehow because corrupt and wouldn't boot. The options for repairing a corrupted VHD are somewhat limited (read: pretty much non-existent). However, a bit of googling showed that WinImage had the ability to extract files from a .vhd image, so I was able to grab a copy of the whole First Storage Group folder from my non-booting image. My bacon was saved, or so I thought. I copied the original .vhd image I saved a few months back to my host machine, and this took me back to a position of having a working Exchange server, but without any content in the mailboxes.
I had expected to just be able to copy my WinImage recovered First Storage Group folder to the Exchange server and all would be well but, after spending over 24 hours trying to get various ways to make this work, I can't.
Running ESEUTIL /mh "Mailbox Database.edb" on the WinImage recovered database returns Operation terminated with error -1022 (JET_errDiskIO, Disk IO error) after 0.32 seconds.
Running ESEUTIL /g "Mailbox Database.edb" on the WinImage recovered database returns the same error: Operation terminated with error -1022 (JET_errDiskIO, Disk IO error) after 0.63 seconds.
So, giving up on the database as a lost cause, I concentrated on the transaction logs (of which there's around 7000 or so). I thought these could be replayed into the currently empty live database. Unfortunately not, it seems.
Running ESEUTIL /ml E00 on the WinImage recovered log files reveals 31 files that report a 501 error. On opening these files, they're completely empty, just loads of whitespace. Perhaps unsurprisingly, trying to replay these logs into the live database by deleting the E00.chk file then running ESEUTIL /r E00 eventually gives the error Operation terminated with error -501 (JET_errLogFileCorrupt, Log file is corrupt) after 16.625 seconds. Sure enough, running ESEUTIL /ml E00.chk it shows the checkpoint reached is 0xFB because the first corrupt/empty log (as revealed by ESEUTIL /ml E00) is E00000000FC.log.
So, my question is, is there anything at all I can do to get the logs which aren't corrupt/empty into a database? Less than 0.5% of the log files are dodgy, which tells me that 99.5% of the mail is still intact... I'd hate to lose it, but I just can't work out how to replay the logs into the database.
Any advice or suggestions (other than doing regular backups, I've now learned that particular lesson) would be very welcome.
Graeme (an Exchange noob in the UK).
< Message edited by gjscott75 -- 19.Mar.2009 9:25:54 AM >