Move a mailbox database using database portability

Applies to: Exchange Server 2013

You can use database portability to move a Microsoft Exchange Server 2013 mailbox database between Exchange 2013 Mailbox servers in the same organization. This can help reduce overall recovery times for some failure scenarios. To learn more, see Database portability.

What do you need to know before you begin?

  • Estimated time to complete: 5 minutes, plus the time it takes to restore the data, move the database files, and wait for Active Directory replication to complete.

  • You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the "Mailbox recovery" entry in the Recipients Permissions topic.

  • You can't use the EAC to move user mailboxes to a recovered or dial tone database using database portability.


Having problems? Ask for help in the Exchange forums. Visit the forums at Exchange Server.

Use the Shell to move user mailboxes to a recovered or dial tone database using database portability

  1. Verify that the database to be moved is in a clean shutdown state. If the database isn't in a clean shutdown state, perform a soft recovery.


    When you perform a soft recovery, any uncommitted log files are committed to the database. If you don't have all of the required log files, you can't complete the soft recovery process. Proceed to step 2.

    To commit all uncommitted log files to the database, from a command prompt, run the following command.

    ESEUTIL /R <Enn>


    <E_nn_> specifies the log file prefix for the database into which you intend to replay the log files. The log file prefix specified by <E_nn_> is a required parameter for Eseutil /r.

  2. Create a database on a server using the following syntax:

    New-MailboxDatabase -Name <DatabaseName> -Server <ServerName> -EdbFilePath <DatabaseFileNameAndPath> -LogFolderPath <LogFilesPath>
  3. Set the This database can be over written by restore attribute using the following syntax:

    Set-MailboxDatabase <DatabaseName> -AllowFileRestore $true
  4. Move the original database files (.edb file, log files, and Exchange Search catalog) to the database folder you specified when you created the new database above.

  5. Mount the database using the following syntax:

    Mount-Database <DatabaseName>
  6. After the database is mounted, modify the user account settings with the Set-Mailbox cmdlet so that the account points to the mailbox on the new mailbox server. To move all of the users from the old database to the new database, use the following syntax.

    Get-Mailbox -Database <SourceDatabase> |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Set-Mailbox -Database <TargetDatabase>
  7. Trigger delivery of any messages remaining in queues using the following syntax.

    Get-Queue <QueueName> | Retry-Queue -Resubmit $true

After Active Directory replication is complete, all users can access their mailboxes on the new Exchange server. Most clients are redirected via Autodiscover. Outlook Web App users are also automatically redirected.

How do you know this worked?

To verify that you've successfully moved a mailbox, do the following:

  • Open the mailbox using Outlook Web App.

  • Open the mailbox using Microsoft Outlook.