Quantcast
Channel: Practical 365
Viewing all articles
Browse latest Browse all 520

Moving Exchange Server 2013 Mailboxes

$
0
0

In Exchange Server 2013 mailbox moves are performed using move requests.

There are a variety of ways that move requests can be used to move mailboxes in an Exchange 2013 organization, with such options as:

  • Moving individual mailboxes or batches of mailboxes
  • Moving primary mailboxes with archive mailboxes or moving them seperately
  • Completing moves immediately or suspending them for later completion
  • How many bad (corrupt) mailbox items are able to be discarded before the migration fails
  • Moving to a specific database or allowing Exchange to automatically choose a database

The Exchange 2013 servers will also apply their own intelligence to mailbox moves, slowing down or even halting a move if the server health is at risk (for example high CPU utilization).

Let’s take a look at some examples of mailbox moves using move requests in Exchange 2013.

Using the Exchange Admin Center to Move Mailboxes

For a single mailbox move you can begin the process from the mailboxes view. In the Exchange Admin Center navigate to Recipients -> Mailboxes and choose a mailbox that you wish to move. At the bottom of the right-hand side click the link to move mailbox to another database.

exchange-2013-mailbox-move-01

Alternatively, select the Migration view and start a new “Move to a different database”.

exchange-2013-mailbox-move-00

Select one or more mailboxes to be moved and click Next.

exchange-2013-mailbox-move-00b

Give the migration batch a name, and choose the target database to move to. If no database is selected Exchange 2013 will automatically choose a target database for the move. Notice also that you can choose whether to move only the primary mailbox, archive mailbox, or both together. Click Next to continue.

exchange-2013-mailbox-move-02

Select a user to receive the email report for the move.

exchange-2013-mailbox-move-03

Choose whether to start the batch immediately or manually start it later. This option allows you to prepare your migration batches ahead of time and then manually start them when you are ready.

exchange-2013-mailbox-move-04

Finally, choose whether the move should automatically complete or should suspend when ready to complete, which requires you to manually complete it. When mailbox moves are processing the user can continue to access their mailbox right up to the point where the completion occurs, when they are disconnected briefly, so this option lets you control the timing of the completion to occur when it will be least disruptive to the end user.

exchange-2013-mailbox-move-05

Click New to begin the move request.

You can observe the progress of the migration batch in the Migration view in EAC.

exchange-2013-mailbox-move-06

When the migration is complete there may be a delay of several minutes due to Active Director replication between sites before the end user can reconnect to their mailbox, depending on where they are located relative to the Exchange servers.

Using Exchange Management Shell to Move Mailboxes

Here is an example of using PowerShell to manage mailbox move requests. In this case the mailboxes hosted on database MB-BR-01 are moved as a batch named “Branch Office Batch 1″. No target database is set so that Exchange 2013 can automatically distribute them between available databases. Also, SuspendWhenReadyToComplete is used to prevent automatic completion, so that it can be initiated at a later time outside of business hours.

[PS] C:\>Get-Mailbox -Database MB-BR-01 | New-MoveRequest -BatchName "Branch Office Batch 1" -SuspendWhenReadyToComplete
DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               Queued                    54.07 MB (56,698,964 b...                          0
John Williams             Queued                    52.35 MB (54,889,436 b...                          0
Alex Heyne                Queued                    90.71 MB (95,115,943 b... 955.9 KB (978,796 bytes) 0
Katherine Phipps          Queued                    54.63 MB (57,281,147 b...                          0
Judith Rodrigues          Queued                    57.11 MB (59,880,427 b...                          0
Olive Weeks               Queued                    53.52 MB (56,123,602 b...                          0
Sonia Smith               Queued                    54.26 MB (56,894,534 b...                          0
Sunset Room               Queued                    36.35 MB (38,113,922 b...                          0
TestMB BR                 Queued                    59.37 MB (62,256,579 b...                          0
Joanne Rigby              Queued                    84.95 MB (89,079,670 b...                          0

You can view the distribution of mailboxes across target databases using Get-MoveRequest.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1"
DisplayName                                    Status                    TargetDatabase
-----------                                    ------                    --------------
Wendy Fyson                                    InProgress                DB01
John Williams                                  InProgress                DB02
Alex Heyne                                     InProgress                DB02
Katherine Phipps                               InProgress                DB02
Judith Rodrigues                               InProgress                DB02
Olive Weeks                                    InProgress                DB02
Sonia Smith                                    Queued                    DB02
Sunset Room                                    Queued                    DB01
TestMB BR                                      Queued                    DB02
Joanne Rigby                                   Queued                    DB02

Progress can be monitored using the Get-MoveRequestStatistics cmdlet.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1" | Get-MoveRequestStatistics
DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               CopyingMessages           54.07 MB (56,698,964 b...                          29
John Williams             CopyingMessages           52.35 MB (54,889,436 b...                          29
Alex Heyne                CopyingMessages           90.71 MB (95,115,943 b... 955.9 KB (978,796 bytes) 25
Katherine Phipps          CopyingMessages           54.63 MB (57,281,147 b...                          25
Judith Rodrigues          LoadingMessages           57.11 MB (59,880,427 b...                          20
Olive Weeks               LoadingMessages           53.52 MB (56,123,602 b...                          20
Sonia Smith               Queued                    54.26 MB (56,894,534 b...                          0
Sunset Room               Queued                    36.35 MB (38,113,922 b...                          0
TestMB BR                 Queued                    59.37 MB (62,256,579 b...                          0
Joanne Rigby              Queued                    84.95 MB (89,079,670 b...                          0

When the move requests reach 95% completed they will display a status of AutoSuspended. The end user can continue to use their mailbox at this time, and you can complete the moves at the desired time.

First remove the autosuspend flag from the move requests, so that they will resume all the way to completion.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1" | Set-MoveRequest -SuspendWhenReadyToComplete:$false

Next, issue a Resume-MoveRequest command.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1" | Resume-MoveRequest

Monitor the move requests until completion.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1" | Get-MoveRequestStatistics
DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               Completed                 54.07 MB (56,698,964 b...                          100
John Williams             Completed                 52.35 MB (54,889,436 b...                          100
Alex Heyne                Completed                 90.71 MB (95,114,080 b... 957.7 KB (980,659 bytes) 100
Katherine Phipps          Completed                 54.63 MB (57,281,147 b...                          100
Judith Rodrigues          Completed                 57.11 MB (59,880,427 b...                          100
Olive Weeks               Completed                 53.52 MB (56,123,602 b...                          100
Sonia Smith               Completed                 54.26 MB (56,894,534 b...                          100
Sunset Room               Completed                 36.35 MB (38,113,922 b...                          100
TestMB BR                 Completed                 59.37 MB (62,256,579 b...                          100
Joanne Rigby              Completed                 84.95 MB (89,079,670 b...                          100

Moving Mailboxes using Migration Batches

In the previous example we looked at using move requests to move multiple mailboxes. The move requests were added to a “batch” for ease of management. This is basically the same approach that could be used in Exchange 2010 to manage move requests.

Exchange 2013 has a new approach to migration batches with a whole new set of PowerShell cmdlets to create and manage them. I prefer PowerShell, but if you’d rather use the EAC you’ll notice that the first example in this article demonstrates how to create a migration batch. All you would need to do is manually add multiple users or import a CSV file. Let’s take a look at those CSV file requirements, which apply for either the PowerShell or EAC method.

To use Exchange 2013 migration batches we first need to create a CSV file containing the details of the mailboxes to move. The only required attribute to be included in the CSV file is the email address of the mailbox.

[PS] C:\admin\migration>Get-Mailbox -Database MB-HO-01 | Select PrimarySMTPAddress | Export-CSV -NoTypeInformation headofficebatch1.csv

Open the CSV file and change the header to “EmailAddress”.

exchange-2013-migration-batch-01

Next, create the migration batch with New-MigrationBatch.

[PS] C:\admin\migration>New-MigrationBatch -Name "Head Office Batch 1" -CSVData ([System.IO.File]::ReadAllBytes("c:\admin\migration\headofficebatch1.csv")) -Local
Identity                        Status                    Type                           TotalCount
--------                        ------                    ----                           ----------
Head Office Batch 1             Created                   ExchangeLocalMove              141

I didn’t set a notification email for the migration batch, but it has used the email address of the account that I was logged in with to submit the move request.

[PS] C:\admin\migration>Get-MigrationBatch "Head Office Batch 1" | fl submittedbyuser,ownerid,notificationemails
SubmittedByUser    : E15Admin@exchangeserverpro.net
OwnerId            : exchangeserverpro.net/Users/E15Admin
NotificationEmails : {E15Admin@exchangeserverpro.net}

We could add more email addresses for notification if we need to.

[PS] C:\admin\migration>Get-MigrationBatch "Head Office Batch 1" | Set-MigrationBatch -NotificationEmails e15admin@exchangeserverpro.net,administrator@exchangeserverpro.net
[PS] C:\admin\migration>Get-MigrationBatch "Head Office Batch 1" | fl submittedbyuser,ownerid,notificationemails
SubmittedByUser    : E15Admin@exchangeserverpro.net
OwnerId            : exchangeserverpro.net/Users/E15Admin
NotificationEmails : {E15Admin@exchangeserverpro.net, administrator@exchangeserverpro.net}

At this stage the migration batch hasn’t started. To start it use the Start-MigrationBatch cmdlet. Alternatively, use the -AutoStart parameter when creating the migration batch.

[PS] C:\admin\migration>Start-MigrationBatch "Head Office Batch 1"

To see the progress of the migration batch run Get-MigrationUser and Get-MigrationUserStatistics.

You can do this for a single user, such as Aisha Bhari that was moved in an earlier example in this article.

[PS] C:\admin\migration>Get-MigrationUser aisha.bhari@exchangeserverpro.net
Identity                                 Batch                          Status                    LastSyncTime
--------                                 -----                          ------                    ------------
Aisha.Bhari@exchangeserverpro.net        Move Aisha Bari                Completed                 8/07/2014 10:27:05 PM
[PS] C:\admin\migration>Get-MigrationUser aisha.bhari@exchangeserverpro.net | Get-MigrationUserStatistics
Identity                                 Batch                          Status                    Items Synced     Item
                                                                                                                   s Sk
                                                                                                                   ippe
                                                                                                                   d
--------                                 -----                          ------                    ------------     ----
Aisha.Bhari@exchangeserverpro.net        Move Aisha Bari                Completed                 7090             0

Or do it for all users being migrated.

[PS] C:\admin\migration>Get-MigrationUser | Get-MigrationUserStatistics
Identity                                 Batch                          Status                    Items Synced     Item
                                                                                                                   s Sk
                                                                                                                   ippe
                                                                                                                   d
--------                                 -----                          ------                    ------------     ----
Aisha.Bhari@exchangeserverpro.net        Move Aisha Bari                Completed                 7090             0
bob.winder@exchangeserverpro.net         Head Office Batch 1            Queued                    0                0
DiscoverySearchMailbox{D919BA05-46A6-... Head Office Batch 1            Queued                    0                0
extest_0bcca07661e94@exchangeserverpr... Head Office Batch 1            Queued                    0                0
Famida.Ghtoray@exchangeserverpro.net     Head Office Batch 1            Syncing                   0                0
Ferzana.King@exchangeserverpro.net       Head Office Batch 1            Syncing                   0                0
Frank.Warboys@exchangeserverpro.net      Head Office Batch 1            Syncing                   0                0
Garth.Gibbons@exchangeserverpro.net      Head Office Batch 1            Syncing                   0                0
Gary.Hopkins@exchangeserverpro.net       Head Office Batch 1            Syncing                   0                0
Gavin.Welch@exchangeserverpro.net        Head Office Batch 1            Syncing                   0                0

When you’re ready to complete the migration batch, which will cause short outages for each user, use Complete-MigrationBatch. Alternatively, use the -AutoComplete switch when creating the migration batch and it will automatically occur, which may disrupt your end users at an undesirable time.

[PS] C:\admin\migration>Complete-MigrationBatch "Head Office Batch 1"

Summary

As you can see there are multiple ways to manage mailbox moves in Exchange Server 2013. Move requests will already be familiar to those who have run mailbox migrations on Exchange 2010 before, whereas the new Exchange 2013 migration batches offer some improved features such as notification emails.


This article Moving Exchange Server 2013 Mailboxes is © 2014 ExchangeServerPro.com

Get more Exchange Server tips at ExchangeServerPro.com


Viewing all articles
Browse latest Browse all 520

Trending Articles