WinDeveloper IMF Tune
WinDeveloper IMF Tune
  • Home
  • General
  • Exchange 2010 Online Mailbox Move, a Deep Dive

Exchange 2010 Online Mailbox Move, a Deep Dive

Amit Tank [MVP – Exchange Server]

Amit Tank [MVP – Exchange Server] Photo

Amit Tank is an MVP in Exchange Server and Microsoft Certified Professional in MCITP, MCTS, MCSA and MCP. He has more than 6 years of experience in IT industry.

Cast your Vote
Poor Excellent

Mailboxes are inaccessible when moved across servers, causing major pain in any Exchange transition or migration project. One step ahead, Exchange 2010 delivers a new feature to move mailboxes while keeping them online to end users.

In Exchange 2000, 2003 and 2007 mailboxes become unavailable during movement. Exchange internally performs a MAPI copy operation using the function IMapiProp::CopyTo() and to ensure that no data is lost, it locks the mailbox.

Exchange 2010 came up with a new wonderful feature called 'Online Mailbox Move' that allows end-users to be online in their email accounts. On completing the move users just needs to reopen their Outlook clients.

Mailbox Move Requests are a new feature set of Exchange 2010 and requires running a series of Cmdlets to perform asynchronous online mailbox moves with the help of a service agent called Mailbox Replication Service (MRS). MRS is available on all Exchange 2010 Client Access Servers.

Mailbox Replication Service

Note: Online mailbox moves are only supported in the following scenarios while moving mailboxes within the same forest or across forests.

  1. Between two Exchange 2010 databases
  2. From Exchange 2007 SP2 database to Exchange 2010 database

Let's start with a simple move request in EMC to understand the procedure performed for a mailbox move.

Move Requests in EMC

We can select one or a list of mailboxes to be moved. To execute the move, select "New Local Move Request" from the Action Pane, or from the context menu that pops-up on right-clicking the selected mailboxes.

New Local Move Request

Select the target mailbox database where you want to move the mailbox.

Move Mailbox Wizard

Once you select Move, the operation is completed in less than a second. All it does is to update the job information in AD, the System Mailbox of the target database and initiates MRS to start the movement. Later MRS performs the asynchronous mailbox moves in the background.

Move Mailbox Wizard

You can see the status of a move request in 'Recipient Configuration | Move Request'. Initially the status shows 'Queued' since we just created the move request.

Request Queued

When any one of the MRS instances picks up the request, the status changes to 'Moving'.

Milabox Moving

We can check the properties of the Move Request to see detailed information.

Move Status

Once the move is finished, the status will be changed to 'Completed'.

Move Complete

When movement is completed the end user will receive a message to restart his Outlook client.

Restart Outlook

OWA is pretty simple; it just pops an Error reporting that it needs to be closed to gain mailbox access.

Restart OWA

At last, upon completion, we need to clear the move request using 'Clear Move Request', otherwise we would not be able to initiate another move request for the same mailbox.

Clear Move Request

Configuring the Mailbox Replication Service (MRS)

MRS can be configured to throttle the move requests. All settings are stored in a configuration file named MSExchangeMailboxReplication.exe.config. This is located under:
<Exchange dir.>\bin

We can configure various properties for throttling, such as the maximum movement per source/target database, the maximum movement per source/target server and many others depending on the capacity of the server. However I would follow the default configuration that is tested and configured to give optimum performance by Microsoft.

Configuration Settings

All MRS instances in an AD site work together to ensure that throttling is being followed as per the configuration and also to make sure that a move request is not picked up by more than one MRS instance. MRS constantly searches for all move requests in its own AD site.

Move requests can handle server failures efficiently by checking the status of the target database every 5 minutes during the move operation. If a database is non-operational, MRS will take a nap of 30 seconds and retries. In case the destination changes due to a failover, MRS will detect the new database location and restarts the move.

User Comments - Page 1 of 1

Add New Comment...

Erikf 12 Nov 2009 07:14
Have anyone trid this with users running Entourage or Macmail? How will they know when the move is complete?
Amit Tank 7 Nov 2009 03:48
Hi NWO,

You can clear all completed move requests with below cmdlet.

Get-MoveRequest | Where{$_.Status -eq "Completed"} | Remove-MoveRequest -Confirm:$False

Here,

'Get-MoveRequest' gets all move request regardless of status.

'Where{$_.Status -eq "Completed"}' filters the result of Get-MoveRequest and get the completed requests only.

'Remove-MoveRequest -Confirm:$False' remove all the move requests filtered with Completed status without asking for the confirmation.

Hope this helps!
NWO 7 Nov 2009 02:05
How can I "Clear Move Request" for all of them in one single command?
Elvis 23 Sep 2009 00:56
Cool! thank you for sharing!
Copyright © 2005 - 2010 All rights reserved. ExchangeInbox.com is not affiliated with Microsoft Corporation