Learn Exchange the Guru way !!!


Exchange 2010 database recovery

This article outline’s the steps to restore an exchange database in Exchange 2010, christened Recovery Database for DAG.

1. Create 2 folders:

  • Database              –> D:\Recovery\Database
  • Transaction Logs   –> D:\Recovery\Logs

2. Now restore the database which is to be recovered and the subsequent logs exactly to the above location

3. Now follow steps 1-7 mentioned in the article and make the database in a clean shutdown :

Exchange Database Recovery – Using eseutil commands:

4. Once the database is in clean shutdown state, rename the original database file to “RecoverDB.edb”.

NOTE: Don’t copy the logs since ESEUTIL /R replayed them into the EDB and the database does not require any more logs to make it clean shutdown.

5. Use the Exchange management Shell to create a recovery database.      

This example creates the Recovery Store “RecoverDB” on the server MSXGuru-Exch using the defined path for the database file and transaction logs folder.

New-MailboxDatabase -Recovery -Name RecoverDB -Server MSXGuru-Exch -EDBFilePath D:\Recovery\Database\RecoverDB.edb -LogFolderPath D:\Recovery\Logs

Important: If you have EMC Console open, you will need to restart it to see the newly created Recovery mailbox Store “RecoverDB“ under the Organization Configuration–> Mailbox –>Database Management and its state will be dismounted.

6. Now Right click on the newly created recovery Store and mount it.

7. Now open Shell and type the command as shown:

Get-MailboxStatistics -Database RecoverDB 

This will show the list of mailboxes in that database.

8. This is the cmdlet to recover entire mailbox content for the mailbox UserA

Restore-Mailbox -Identity UserA -RecoveryDatabase RecoverDB

This will take time depending on the size of the mailbox.

9. This is the cmdlet to restore UserB mailbox content into UserA mailbox under the RecoverTest folder.

Restore-Mailbox –Identity UserA –RecoveryDatabase RecoverDB –RecoveryMailbox UserB –TargetFolder RecoverTest

10. This is the cmdlet to restore all mailboxes in the database mbx1 which are also present in the RecoverDB database. For every mailbox it will ask you to confirm the action, we do have an option “Yes to All”

Get-Mailbox –Database mbx1 | Restore-Mailbox –RecoveryDatabase RecoverDB

More to come on this!!!


20 Responses to “Exchange 2010 database recovery”

  1. Ashish Shukla Says:

    I am facing an interesting problem of identity of recovery mail box.

    Get-MailboxStatistics -Database RDB1
    Shalil Kumar Gupta 3362 BelowLimit 12/17/2010 10:02:41 AM

    Restore-Mailbox “shalil Kumar Gupta” -RecoveryDatabase RDB1
    The specified user “shalil Kumar Gupta” couldn’t be found.
    + CategoryInfo : NotSpecified: (0:Int32) [Restore-Mailbox], ManagementObjectNotFoundException
    + FullyQualifiedErrorId : 84122923,Microsoft.Exchange.Management.RecipientTasks.RestoreMailbox

    I have tried with userId, GUID of mailbox but failed.

    Any idea how to recover this mailbox or what identity should i provide for this mail Box.

  2. yihwen Says:

    This is a very good guide.

  3. David Menegat Says:

    I need to make a recovery database. The information I find out there is not comprehensive I like the way you guys explain stuff do you have an article like this on the creation of a recovery database?

  4. baseer Says:


    You need to run command properly. Try using display name.

  5. Philip Says:

    You can find the display name by using the command: get-mailboxstatistics -database RDB1.

  6. Umut Says:

    I created the RecoverDB. When i run the command
    Get-MailboxStatistics -Database RecoverDB nothing happens.

  7. Exchange 2010 – recuperando database | Windows Brasil Says:

    [...] Posted in: Exchange [...]

  8. wael Says:

    i can’t understand the last command to restore all mailboxes in the database mbx1 to the RecoverDB , i thought it should be reversed

  9. Holly Says:

    Thanks a lot. This was helpful.

  10. Fabio Says:

    i have the problem when mount the recovery db
    the original edb file is State: Clean Shutdown
    after rename edb file and create newdb is ok
    RecoveryDB TESTEXC01 True None

    but when i try to mount i have this error:

    Couldn’t mount the database that you specified. Specified database: RecoveryDB; Error code: An Active Manager operation failed. Error: The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0×80004005, ec=1276)
    [Database: RecoveryDB, Server: TESTEXC01.test.local].

    An Active Manager operation failed. Error: The database action failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0×80004005, ec=1276)
    [Database: RecoveryDB, Server: TESTEXC01.test.local]

    An Active Manager operation failed. Error: Operation failed with message: MapiExceptionCallFailed: Unable to mount database. (hr=0×80004005, ec=1276)
    [Server: TESTEXC01.test.local]

    MapiExceptionCallFailed: Unable to mount database. (hr=0×80004005, ec=1276)

    the production ad domain that i want to recovery is different that domain of the server recovery(test.local) , This could be the problem ?


  11. GAP Says:

    This was helpful.
    keep it up.
    Thank iu.

  12. James Says:

    Wael, its not recovering from mbx1 to recoverdb. It is pulling a list of users in mbx1 and then piping that into the recover command. That command will recover the data for any user who has an active mailbox in mbx1.

  13. DC Says:

    Fabio, before you mount the recovery DB, you have to go into the properties and check the box that says it can be overwritten by a restore. Also, make sure the logs folder that was created for that DB is empty.

    Now, my problem is this:
    A user was somehow accidentally deleted from AD. His account was recreated. I restored the MDB from backup and have done all the proper steps to mount the RDB. However, when I run Restore-Mailbox -Identity “username” -RecoveryDatabase RDB
    I get the following error:

    Database “RDB” is not a recovery database.

    If the New-MailboxExportRequest would WORK on my server, I would probably be OK. But I’ve followed the step to give those permissions to the admin user and the command fails.

  14. DanMan32 Says:


    You can mount a database in a different server, but both servers have to be in organizations of the same name. I suspect since you indicated they are in differnt domains, the Exchange organizations are different. That won’t work.

  15. Stephen Says:

    Nice post.

  16. Marshall Says:

    Thanks for sharing post to recover exchange mailboxes, above tips are more helpful to recover mailbox using the shell command.

  17. Qhayum Says:

    Thanks for updating…

  18. Kapil Says:

    Hi All, I think if the exchange org is different then you can restore the edb and log files of the db and then create a new database thru shell and then provide the edb and log folder path with selecting overwrite the database option. Then can run the new-mailboxexportrequest.

  19. rob Says:

    How do you use the Recovery Database to restore the entire mailbox database .edb ?

  20. Prabhat Nigam Says:

    Hi Rob,

    Have a look on the search results. There are many blogs.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.