Recovering data from Microsoft Exchange 2007

Tuesday, November 15th, 2011 | Microsoft Exchange, Technical | Mike Smith

Recently, I ran into an issue where a piece of software that integrates with exchange had “merged” some of the user’s contacts resulting in many contacts going missing from the accounts.  There are various ways to resolve this from backups, and I’ll mention three in this post.  Due to the issues with this particular setup, I will only go into details for the third option which is what was done.

This assumes you are familiar with Active Directory, Exchange System Manager, the Exchange Console, and have full access to user’s mailboxes.

Option 1: Granular Restore with Symantec Backup Exec

As this setup is using Symantec Backup Exec, the GRT was not working due to a version inconsistency, or this would be the normal default for any restoration of Exchange information.


Option 2: Exchange Recovery Storage Group (RSG)

After working with Microsoft support for this issue to ensure no data was lost and there was minimal downtime for the users, we were unable to use this feature.  The reason is, the only reliable backup of the contacts was from some time back.  Using RSGs, you are only able to merge the two versions of the mailbox in its entirety.  If we did this, the contacts would return, but so would many other deleted emails or calendar appointments.  This would also cause issues with the calendaring agent from ProLaw seeing various copies of older items.  According to support, you are unable to select a specific folder to merge, only the entire mailbox for that users account.

An option was to restore the user’s data to a new temporary account, then archive the contacts out.  Once that is complete, we would have to delete the folder, and export the data for the next account.  Ultimately, this would take many hours while copying the entire mailbox to the temp account.  Here is the Exchange code to merge the data to a new user’s mailbox:

restore-mailbox -Identity “TEMP ACCOUNT” -rsgdatabase “[path to RSG db]” -rsgmailbox “SOURCE MAILBOX IN RSG” -TargetFolder “Folder to restore data to]

Option 3: Mount/Extract data from a Separate Store

Ultimately this is the option we went for.  We restored the database DB file to separate location, and mounted it with a different name inside a separate store. We then connected the mailboxes to a temp account to extract the contacts to a PST file for each user.  This allowed the users to experience no downtime or interruption.

Step 1 – Notify users of downtime, as you will need to disconnect their mailboxes.

Step 2 – Restore the mail DB to separate file, mount this to a new storage group in Exchange naming it as you see fit.

Step 3 – Once mounted, in the Exchange System Manager, you can check the “disconnected mailboxes” to ensure that all the users mailboxes are present and disconnected.

Step 4 – Locate the live user’s account in the Exchange System Manager, right-click and select “Disable”  DO NOT SELECT REMOVE! If you select remove, you delete the user’s AD account as well!

Step 5 – Navigate to the disconnected mailbox of the user you have just disabled in your temporary Storage Group (careful here, you will see two for that user, make sure you select the one in the correct temporary Storage Group you created earlier), right-click and “Connect” the mailbox to an AD with which you have access and can open the mailbox.

Step 6 – Open Outlook as the account you just connected the mailbox to, and archive out the needed data to a PST file.

Step 7 – Returning to Exchange System Manager, “Disable” the mailbox you have just linked in the previous step in the live storage group.

Step 8 – In the disconnected mailboxes, connect the user’s live mailbox back to their AD account.

Step 9 – Log in as that user, verify mail is flowing, and import the PST data you have just created.

Tags: , , , ,

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Page 1 of 11

Leave a Reply