Increase the number of simultaneous mailbox moves

Yesterday I did a mailbox migration for a customer and it hit me that I have never shared this tip with you before. By default Exchange 2010 allows 2 simultaneous mailbox moves to run. When you perform a migration of many mailboxes you might want to increase this number. Here is how you do it:

    1. Open explorer on the Exchange server and navigate to C:\Program Files\Microsoft\Exchange Server\V14\Bin (This is the default path, the path on your server might be different)
    2. Make a backup copy of the file MSExchangeMailboxReplication.exe.config. I have a habit of creating a file copy and naming it <filename>_backup but that’s just my approach.
    3. Use your favorite text editor and open MSExchangeMailboxReplication.exe.config.
    4. Find the following part in the file:
      MaxRetries = “60”
      MaxCleanupRetries = “5”
      MaxStallRetryPeriod = “00:15:00”
      RetryDelay = “00:00:30”
      MaxMoveHistoryLength = “2”
      MaxActiveMovesPerSourceMDB = “5”
      MaxActiveMovesPerTargetMDB = “2”
      MaxActiveMovesPerSourceServer = “50”
      MaxActiveMovesPerTargetServer = “5”
      MaxTotalMovesPerMRS = “100”
      FullScanMoveJobsPollingPeriod = “00:10:00”
      MinimumTimeBeforePickingJobsFromSameDatabase = “00:00:04”
      ServerCountsNotOlderThan = “00:10:00”
      MRSAbandonedMoveJobDetectionTime = “01:00:00”
      BackoffIntervalForProxyConnectionLimitReached = “00:30:00”
      DataGuaranteeCheckPeriod = “00:00:10”
      DataGuaranteeTimeout = “00:30:00”
      DataGuaranteeLogRollDelay = “00:01:00”
      EnableDataGuaranteeCheck = “true”
      DisableMrsProxyCompression = “false”
      DisableMrsProxyBuffering = “false”
      MinBatchSize = “100”
      MinBatchSizeKB = “256” />
    5. Change the following parameters to match you requirements:
      MaxActiveMovesPerSourceMDB = “5”
      MaxActiveMovesPerTargetMDB = “2”
      MaxActiveMovesPerSourceServer = “50”
      MaxActiveMovesPerTargetServer = “5”
      MaxTotalMovesPerMRS = “100”
    6. Feel free to look through the rest of the parameters in this file, you will see that there is plenty more parameters you can change.
    7. Restart the Mailbox Replication service using the following command: Restart-Service MSExchangeMailboxReplication

Please note that changing these values and allowing more simultaneous mailbox moves etc. increases the load on the server. Change these values with care and do not add extremely high numbers. As a final note, this is not the only thing affecting moves, server performance is a big part of it and especially disk performance. So even if you change these values you might not get a better result.

Thanks for reading and do not hesitate to let me know if you run in to any problems!


Show and move “hidden” Arbitration mailboxes in Exchange Server 2010

So, let’s say you have a new installation of Exchange Server and you want to move all mailboxes, including Arbitration, from the default database created during the installation to a new mailbox database. Here is how to do it…
First of all, if you just try to delete the default database you will get this message:
Stating that the database isn’t empty, even though it does look empty if you do a get-mailbox for the specific database:
get-mailbox -Database “Mailbox Database 1905367170”
There is a switch that you should use if you want to see all mailboxes, even the “hidden” Arbitration mailboxes:
get-mailbox -Database “Mailbox Database 1905367170” –Arbitration
This gives us different result then the first get-mailbox command:
As you can se the database isn’t as empty as we first thought. To move these mailboxes to the new database you can easily pipe the result of the get-mailbox command and create new move requests for all Arbitration mailboxes:
get-mailbox -Database “Mailbox Database 1905367170” -Arbitration | New-MoveRequest –TargetDatabase “MailboxDatabase1”
So, good luck with the moves and please let me know if you bump in to any problems, thanks for reading!