Exchange Server 2010: Using Database Portability for Disaster Recovery

Exchange Server 2010 has a feature called Database Portability. This is the capability for a mailbox database from one Mailbox server to be mounted on another Mailbox server within the same organization.

In this article I will demonstrate how you can use Database Portability in a disaster recovery situation.

First we need to understand a few key points about Database Portability:

  • the mailbox database can only be mounted on another Mailbox server within the same Exchange organization
  • the mailbox database can’t be from an earlier version of Exchange Server
  • the database can’t be a public folder database

In this example scenario a Mailbox server has failed, and another Mailbox server is available to mount the database from the failed server.

There are different approaches that could be taken instead of using Database Portability, such as:

The first step is to get the database and log files onto the server where you want to mount them. This could be done by restoring them from backup, or by attaching the same storage that was on the old server to the new server.

Before we proceed further we need to check what shutdown state the database is in. Open the Exchange Management Shell and navigate to the folder containing the database file. Then run the following command to check the database state.

g:\Data\MB-HO-01>eseutil /mh MB-HO-01.edb | findstr "State:"
            State: Dirty Shutdown

With a database in a dirty shutdown state, and all of the transaction log files available, we can perform a soft recovery of the database. This commits any uncommitted transaction logs into the database so that there is no data loss. If you don’t have the transaction logs, or your database is in a clean shutdown state, then you can skip this step.

From the folder that contains the transaction logs run the following command, replacing “E00″ with the log file prefix for your database.

F:\Logs\MB-HO-01>eseutil /r E00 /d G:\Data\MB-HO-01

Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
Version 14.01
Copyright (C) Microsoft Corporation. All Rights Reserved.

Initiating RECOVERY mode...
    Logfile base name: E00
            Log files:
         System files:
   Database Directory: G:\Data\MB-HO-01

Performing soft recovery...
                      Restore Status (% complete)

          0    10   20   30   40   50   60   70   80   90  100
          |----|----|----|----|----|----|----|----|----|----|
          ...................................................

Operation completed successfully in 1.938 seconds.

Note the use of the /d parameter to specify the location of the mailbox database file. This is required if it not in the same path as on the original server.

Create a new mailbox database on the Mailbox server you are using to mount the database. Specify paths for the transaction logs and database file that are different to the current location.

[PS] G:\>New-MailboxDatabase -Server esp-ho-ex2010a -Name MB-HO-01-Recovered -LogFolderPath F:\Logs\MB-HO-01-Recovered -EdbFilePath G:\Data\MB-HO-01-Recovered\MB-HO-01.edb

Name                           Server          Recovery        ReplicationType
----                           ------          --------        ---------------
MB-HO-01-Recovered             ESP-HO-EX2010A  False           None

Copy the database and log files from their current locations into the locations that you specified when creating the new mailbox database.

Mark the database as overwritable.

[PS] G:\>Set-MailboxDatabase MB-HO-01-Recovered -AllowFileRestore:$true

Now mount the mailbox database.

[PS] G:\>Mount-Database MB-HO-01-Recovered

At this stage we’ve got the mailbox successfully mounted, but the users with mailboxes on that database are still pointing to the old server and database name.

[PS] G:\>Get-Mailbox -Database MB-HO-01

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Administrator             Administrator        esp-ho-ex2010b   unlimited
Alan.Reid                 Alan.Reid            esp-ho-ex2010b   unlimited
Alex.Heyne                Alex.Heyne           esp-ho-ex2010b   unlimited
Aisha.Bhari               Aisha.Bhari          esp-ho-ex2010b   unlimited
Aleisha.Harrison          Aleisha.Harrison     esp-ho-ex2010b   unlimited

So the final step is to update the attributes for those user accounts to point to the new mailbox database.

[PS] G:\>Get-Mailbox -Database MB-HO-01 | Set-Mailbox -Database MB-HO-01-Recovered

Confirm
Rehoming mailbox "exchangeserverpro.net/Users/Administrator" to database "MB-HO-01-Recovered". This operation will only
 modify the mailbox's Active Directory configuration. Be aware that the current mailbox content will become
inaccessible to the user.
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): a

Now we can see that the user accounts have been updated with the new attribute.

[PS] G:\>Get-Mailbox -Database MB-HO-01-Recovered

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Administrator             Administrator        esp-ho-ex2010a   unlimited
Alan.Reid                 Alan.Reid            esp-ho-ex2010a   unlimited
Alex.Heyne                Alex.Heyne           esp-ho-ex2010a   unlimited
Aisha.Bhari               Aisha.Bhari          esp-ho-ex2010a   unlimited
Aleisha.Harrison          Aleisha.Harrison     esp-ho-ex2010a   unlimited

The users will now be able to connect to their mailboxes again under the following assumptions:

  • The updated user account attributes may need to replicate through Active Directory
  • Outlook 2007/2010 and Outlook Web App users will automatically connect to the new database
  • Outlook 2003 clients will require a manual profile update to connect to the new database

 

About Paul Cunningham

Paul is a Microsoft Exchange Server MVP and publisher of Exchange Server Pro. He also holds several Microsoft certifications including for Exchange Server 2007, 2010 and 2013. Connect with Paul on Twitter and Google+.

Comments

  1. Hello, Paul.
    Thanks for the Tutorial, it’s very clear and well explained.

    I don’t tried to do this kind of procedure on EX2010, but in 2007 I remember that we can use the Move-Mailbox with the -ConfigurationOnly parameter to point the Mailboxes to the new Database path.

    It’s important to say that the -ConfigurationOnly was removed from the EX2010 version, and now we use the Set-Mailbox -Database (like you did in the last part of the text).

    All the details were explained in this link:
    http://blogs.technet.com/b/nawar/archive/2010/05/03/what-happened-to-configurationonly.aspx

  2. This doesnt work when trying to recover the database! Or when moving a database from one server to anohter. All it does it create a new blank database (with no data) – called recovered!

    How is this useful?

    Robert

    • Hi Robert, I was doing it live while I wrote the article demonstrating it.

      If you mount the database and have the paths configured correctly to point to the files you’ve copied over to the server, then it will mount that database. If not then it will likely create a new empty EDB file, which sounds like what has happened to you.

  3. Sorry that worked perfectly! My apologies. I changed the database name (from labdatabase01.edb) to labdb01.edb – and then wondered why it was blank!

    Thanks again!

  4. Raphaël says:

    Hi Paul,

    Thanks for your article. However I have a question.

    I tried to do that on dedicated Archive databases.
    MDBAR01 transferred from server1 to server2 with a new name : MDBAR01-Recovered.
    My problem is that they are only archive mailboxes on this DB.
    So I cannot find how to set this archivemailboxes to be setted on MDBAR01-Recovered instead of MDBAR01.

    Any idea ?

    Thanks,
    Raphaël

  5. Hi Paul,
    I have the same case as Raphael,
    Our archive DB is on a SAN and it’s connected to the server EXCH1 via a iSCSI target,
    we have switched the connection to server EXCH2, but the database status shows “ServiceDown”.
    Do above steps apply also in that case? Is it necessary to do the final step “Rehoming” as this DB contains the personal archives, and how it will enable every personal archive to its right mailbox ?

    Thank you for your help.

    • Actually I don’t know how different this process will be for archive mailboxes since I haven’t tested that scenario.

      • Hi Paul,
        I have followed your steps, and at the end, I didn’t do the rehoming, as this mailbox DB is used for the archive, instead, I have changed these attributes manually from Active Directory of one test user :

        attributes: “msExchArchiveDatabaseLink” to point the new DB and “msExchDisabledArchiveDatabaseLink” to point the old DB.
        you might also change “msExchArchiveGUID” and “msExchDisabledArchiveGUID” and switch their values,
        Connected again to the user mailbox and the Personal archive has open,
        Thank you

        • Zeeshan Butt says:

          Hi Omar,

          Can you please let me know how to change the attributes. I am also going from this condition. Your help will be appreciated.

          Thanks & Regards,
          ZB

        • Hello Zeechan,
          May be it’s a too late answer, but it could be helpfull for others too.

          To see these attributes, from your Exchange server, open the ADSI Edit (Start > Admin Tools).
          Once opened, if it’s not connected, right-click on the ADSI Edit from the left pane and select Connect, then enter your domain name and click OK.
          Now your complete domain tree will be show in the left pane, expand and navigate to the OU where your user is, and right-click on the user and select Properties, there you can find all the attributes.

          Hope this help.

          Thanks

  6. Thanks man it was really helpful

  7. Zeeshan Butt says:

    Hi Paul,

    Really nice post very useful information. I have one query what if i lost my archive mailbox database. How to update attributes for those user accounts to point to the new archive mailbox database.

    Thanks in Advance.

    Regards,
    ZB

  8. Hi Robert, very good article. I have a question about Outlook 2003 (cached or not cached) clients: you say
    “Outlook 2003 clients will require a manual profile update to connect to the new database”, but using separate CAS server, also Outlook 2003 clients use it so, moving in this way a database from one mailbox server to another mailbox server, of the same AD site (therefore the same CAS server for clients) does not change Outlook 2003 profile. Is it correct? Have you tested this scenario?

    Thanks
    Regards

    David

  9. Pham Trung Duc says:

    Hi Paul, I wonder that what does “◾the mailbox database can only be mounted on another Mailbox server within the same Exchange organization” means???

    In my scenario, my company have an exchange organization with domain name DOMAIN.com. But now, we want to shutdown this Exchange 2010 Organization and build a totally new exchange server 2010 organization wit the same domain name DOMAIN.com, the only thing we save is the Mailbox Database .edb file. So with your opinion, could I copy the .edb file from the OLD Mailbox server to an Storage device and copy, mount it on a NEW Mailbox server following your instruction.

    Thanks and Regards !
    Pham

    • An Exchange organization exists within an Active Directory forest. So it depends if your new domain is part of the same forest, or an entirely new forest, whether the domain is still part of the same Exchange organization.

      If your domain is in a new forest, and therefore a new organization, then you can’t use database portability.

      I will also stress that this is primarily a disaster recovery feature, not a migration method to get mailboxes from one server to another in a planned migration.

      • Pham Trung Duc says:

        My Domain is in a new forest totally, it has no relationship with the old domain controller except that it has the same name: DOMAIN.com
        So Could you help me to find an optimize migration solution?
        In my point of view and from what I have search, these are steps that I will deploy:
        1. Create mailbox or mail-enable existing user from .csv file using shell script
        2. On OLD Mailbox server: Export mailbox database per user using New-MailboxExportRequest command.
        3. On NEW Mailbox server: Import mailbox database per user using New-MailboxImportRequest command.
        Did this solution is possible and optimize for my company’s scenario?
        Thanks Paul so much :)

  10. benjamin says:

    for a drp setting ad intact, cas also intact. mailbox mounted following the process above. the challenge now is that cas in powershell could see mailbox recovered but not included in its mailbox

    Please advice on what to do

    Thank you

    Benjamin

Leave a Comment

*

We are an Authorized DigiCert™ SSL Partner.
Loading...

Still running Exchange 2003? Time to get moving and start your upgrade. Find out how - Click Here