Saturday, August 16, 2014

Preseeding Exchange 2010 Databases in DR Site

One of our clients uses a remote location as a disaster recovery (DR) site for Exchange. The purpose of the DR site is less about functionality (although, it is usable), it's more about the offsite backup functionality this provides.

Last week, the Exchange server in the DR site failed and after rebuilding it, we needed to get it going again. The link speed to the remote location is only about 5 Mbps on which they can move about 50 GB of data per day. Given that they have 250GB of mail data, seeding over the network would have resulting in about 5 days of seeding if there were no network interruptions.

The process for preseeding is clearly described in the Microsoft documentation and works as advertised:
  1. Clean up an incorrect data for the database such as database copies that no longer exist if you are in a recovery situation.
  2. Disable circular logging on the database. You are going to take a copy of the database and the log files generated between when you take a copy and when you start it on the new server are copied to bring it up to a current state.
  3. Dismount the database and copy the files (database, logfiles, and index) to portable media. You need to dismount the database to ensure that the copy you have is consistent. Alternatively, if you can't afford the outage to copy the database, you can backup your database and restore to portable media. That backup will have a consistent copy of the database. You could also briefly dismount the database, take a volume shadow copy, mount the database, and use the volume shadow copy as your source.
  4. Remount the database. When you remount the database users can begin using their mailboxes again.
  5. On the new server copy the files from portable media. Remember that the file path for a database copy needs to be exactly the same on all servers. So, put it in the exact same path.
  6. On the new server add the mailbox database copy by using the Exchange Management Shell. You need to use EMS to use the -SeedingPostponed parameter that indicates that the database is already there and not to copy over top of it. You do not need to run a command to indicate you are ready, the database starts up immediately.
  7. Wait for log files to replicate and replay. Now the database mounts locally and all log files since the copy are replicated to the new server and replay on the copied database.
  8. Finally, if you were using circular logging you can reenable it on the database.
To add the database copy in step 6 use this command:
Add-MailboxDatabaseCopy -Identity DbName -MailboxServer MbxServerName -SeedingPostponed
The Microsoft documentation is here:

No comments:

Post a Comment