With Exchange backup set up according to best practices, most vendors provide ‘mailbox level’ recovery tools, or even ‘message level’ recovery tools, which enable you to seamlessly and very quickly recover anything you could possibly need such as a single mailbox or even a single message. This blog is not about utilizing this painless process.
If you simply slapped on a Windows-level backup agent that isn’t Exchange aware, what you end up with is technically a viable backup as VSS will take care of quiescing the database writes. What you don’t at all end up with is a solution that is at all pleasant to use.
Since you are never really supposed to use this method, as presumably you have your backups configured at mailbox level, I was not able to find a start-to-finish writeup of the procedure online, so I’ve detailed the steps below for any other poor souls who find themselves faced with using this method.
Here is the process you can use to recover a single mailbox if the only good backup you have is the whole *.MDB file.
Step One: Log into Barracuda
Choose the date and locate your *.MDB file containing the offending mailbox. You might need to consult Exchange console to determine which database the mailbox is located in.
Step Two: Restore to RecoveryDB
From the Barracuda control panel, restore the database file with ‘create recovery database’.
Specify the path where you want the MDB file to land and kick off the restore. Keep in mind we are restoring the entire database so you will need A LOT of space. With this option selected, you will end up with a database in a ‘clean shutdown’ state. Kick back in your chair and wait for gigabytes worth of mailbox data trickle down.
Step Three: In Exchange Shell create a new mailbox database.
New-MailboxDatabase -Recovery -Name yourdatabasename -Server “servername” -EdbFilePath “path” -LogFolderPath “path”
Step 4: In Exchange Console
make yourself a email@example.com mailbox/user combo. This will allow us to restore items to a new, empty mailbox, without overwriting any data.
Step 5: In Exchange Shell mount-database your databasename.mdb you created in step 3.
Step 6: In Services on Exchange server restart information store.
Step 7: In Exchange Shell restore the ‘offending’ mailbox to the newly created mailbox.
C:\>New-MailboxRestoreRequest -Name “whateveryoulike” -SourceDatabase yourdatabasename -SourceStoreMailbox “Offending Mailbox” -TargetMailbox “Test Restore” -TargetRootFolder “SomeFolderName” -AllowLegacyDNMismatch
Step 8: In Exchange Shell check on status of restore: Get-mailboxrestorerequest
Once restore is complete we can move to fetching the message(s) we need
This completes the restore part. We now have contents of ‘Offending Mailbox’ restored to ‘Test Restore’ mailbox. Grant yourself access to ‘Test Restore’ mailbox and attempt to locate the message(s) wanted.
Post-Restore Data Cleanup
Keep in mind, we used up a lot of space to restore an exchange mailbox that we now need to recover. After finding the message you were restoring and saving it as an *.eml or exporting to PST, all we need to do is dismount the database created in step 3 from exchange, delete the database, and the whole process is complete.