How to Restore Mailbox Data from an Exchange Recovery Database

Applies to: Exchange Server SE / 2019 / 2016 / 2013 / 2010

Exchange Server uses a Recovery Database (RDB) to mount a restored mailbox database and recover mailbox data without disrupting the production database. After the restored database is mounted as an RDB, New-MailboxRestoreRequest can merge mailbox data into an existing mailbox.

The original version of this article demonstrated the process on Exchange Server 2010 with Windows Server Backup. The same Recovery Database concept continues in current Exchange Server releases, although the backup and recovery workflow has evolved.

In This Article

1. How Recovery Databases Work

Exchange 2003 and Exchange 2007 used a Recovery Storage Group (RSG). Exchange 2010 replaced that model with the Recovery Database.

An RDB is a special mailbox database used only for recovery. Users do not connect directly to mailboxes inside it. Instead, Exchange extracts the required data and merges it into an existing mailbox.

2. Restore the Exchange Database

Windows Server Backup can create Exchange-aware VSS backups when the Exchange Windows Server Backup plug-in is available. To prepare data for an RDB, restore the Exchange database and log files to an alternate location.

Windows Server Backup does not restore an application-level backup directly into an RDB. Restore the database files first, then place the restored database and logs in the RDB folder structure.

3. Prepare the Restored Database

Check the database state:

eseutil /mh E:\Restore\DB1.edb

If the restored database is in Dirty Shutdown, perform soft recovery using the correct log generation prefix for that database:

eseutil /r E01 /d "E:\Restore"

Verify again with eseutil /mh and continue only after the database reports Clean Shutdown.

4. Create and Mount the Recovery Database

Create an RDB that points to the restored database and log location:

New-MailboxDatabase -Recovery -Name RDB1 -Server EX01 -EdbFilePath "E:\Restore\DB1.edb" -LogFolderPath "E:\Restore"

Mount the RDB and list the mailboxes it contains:

Mount-Database RDB1

Get-MailboxStatistics -Database RDB1 | Format-Table DisplayName,MailboxGuid -AutoSize

5. Restore Mailbox Data

Use the mailbox GUID from the recovery database as the source. The following example restores the recovered data into a separate folder in the user’s production mailbox:

New-MailboxRestoreRequest -SourceDatabase RDB1 -SourceStoreMailbox <MailboxGuid> -TargetMailbox user@contoso.com -TargetRootFolder "Recovered"

If only a specific folder is required, use -IncludeFolders. For example:

New-MailboxRestoreRequest -SourceDatabase RDB1 -SourceStoreMailbox <MailboxGuid> -TargetMailbox user@contoso.com -TargetRootFolder "Recovered" -IncludeFolders "#Inbox#"

Monitor the request:

Get-MailboxRestoreRequest
Get-MailboxRestoreRequestStatistics -Identity "user\MailboxRestore"

After validation, remove completed restore requests and dismount/remove the RDB when it is no longer required.

6. Key Takeaways

  • Exchange 2010 replaced Recovery Storage Groups with Recovery Databases.
  • RDBs remain the Exchange Server mechanism for recovering mailbox data from a restored database.
  • Windows Server Backup can create and restore Exchange-aware VSS backups.
  • A database restored to an alternate location must be prepared and brought to Clean Shutdown before mounting it as an RDB.
  • Use New-MailboxRestoreRequest to merge recovered mailbox data into the production mailbox.

References

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.