KB ID 0000864
While replacing an Exchange 2013 Server on my test network last week, I needed to get all the mailboxes moved across to the new one. Exchange gets upset if you try and delete a mailbox database that has data in it.
1. Launch the Exchange Management Shell > Firstly lets get the names of my Databases, then I can simply copy and paste them into the move mailbox command.
Get-MailboxDatabase Get-Mailbox -Database “Source Database Name” -ResultSize Unlimited | New-MoveRequest -TargetDatabase “Target Database Name”
2. The Mailbox moves should then be queued, depending on how many there are, this can take some time to complete.
3. To check on progress issue the following command;
Get-MoveRequestStatistics -MoveRequestQueue “Target Database Name”
4. When complete you should remove the movement requests like so;
5. That’s all the ‘user’ mailboxes, but your source database server may have system mailboxes in it. These will be either Arbitration mailboxes, or Archive Mailboxes (or both). I don’t have any archive mailboxes, but I do have Arbitration mailboxes. To find out for your databases, use the following commands;</p.
Source Database Name" -Arbitration Get-Mailbox -Database "Source Database Name" -Arbitration
6. To move Arbitration and Archive mailboxes, use the following commands;
Get-Mailbox -Database "Source Database Name" -Arbitration | New-MoveRequest -TargetDatabase "Target Database Name" Get-Mailbox -Database "Source Database Name" -Archive | New-MoveRequest -TargetDatabase "Target Database Name"
7. You can monitor progress with the same command you used in step 3, and remove the move requests with the same command you used in step 4.
Related Articles, References, Credits, or External Links