Summary: Migrating mailboxes between databases is not a daily task, and users can therefore find themselves spending an excessive amount of time troubleshooting for this or re-distributing the mailboxes across the databases. PowerShell can be used for the purpose. Though it is not precisely reliable, but can help you to migrate database existing Exchange to Exchange 2016 in immaculate way.
Similar to Exchange 2013 or some other earlier versions before Exchange 2016, E-2016 mailbox movement also recognized as “Migration Batches”. Every mailbox that will be moved has a particular batch name.
Whether the Mailbox Move is for a single user or for a group of users i.e. Remote Move or Local move, it can be migrated from one mailbox to another mailbox. The move request in Exchange 2016 uses Migration XYZ arbitration mailbox for storing the details like migration user details, extension details, batch information etc.
In an earlier version of Exchange servers (2016 or before), the transaction logs that generate while moving the mailboxes use to store destination databases/under source, however, the transaction logs of Exchange 2016 will store under database where Migration arbitration mailbox is located. By default, the transaction logs will generate more at the time of the movement of the mailbox, manage database records during the mailbox movement you can use the workaround given here-
- Enable the circular logging on a database of the mailbox where arbitration mailbox is actually hosted.
- Increase volume size of the original database and run the backup on regular intervals to eradicate the logs files
- Use New-move request as a substitute of the batch move.
Now let’s see how to move mailboxes in Exchange 2016 using PowerShell:
Before we start with the mailbox move or migrate from existing Exchange to Exchange 2016, we should check if the mailbox is ready to transfer:
New-Move Request –Identity <username> –Target Database <Database name> –WhatIf
Note: WhatIf command is used to check the mailbox. It confirms if there are any type of errors with the mailbox.
Let’s see how to create batch migration in EAC-
- Go to Exchange Admin CenteràRecipientsàMigrationà. Click on. Select Migration
- We will find 2 options here- First is to move to different Database and second is a move to this forest.
- Choose the suitable option to go to next window.
- Choose the users and click on Next.
Note: Users can be designated either from an AD by clicking or can import them from CSV file to specify users list for the movement.
Assign the Batch name along with the Target database name for both Archive and Mailbox and bad item limit.
Now you can choose the below options-
- Both Primary and Archive mailbox for movement
- Primary mailbox (applicable just for the mailboxes on Exchange 2010 and Exchange 2013)
- Archive Mailbox (applicable just for the mailboxes on Exchange 2010 and Exchange 2013)
Choose the user account that needs to receive the report of migration batch. It will be selected as Administrator by default. Select the correct options to start & complete the batch. Click on New. Under Exchange Admin Center, you can find the details here. Now the mailbox move operation is completed.
Drawbacks of Manual solution
- Requires strong technical knowledge
- Doesn’t guarantee of successful migration
Try professional solution – Shoviv Exchange Server Suite
If you face any issues while using PowerShell command to migrate mailboxes from one database to another in Exchange 2016, do not worry. There is a professional solution called Shoviv Exchange Server Suite for your all recovery and migration purpose. Some prominent features of the tool are:
- Recovery of entire EDB, PST, and Exchange OST files.
- Capable to import EDB mailboxes to Outlook PST, Office 365 and Live Exchange.
- Provides facility to import OST, PST files to Live Exchange and Office 365.
- Embedded with simple and easy-to-use user interface.
With the above write-up, you will get to know about the process of migration of existing Exchange mailbox to Exchange 2016. This process can be done manually or by using automated solution as well. One can make use of PowerShell for the purpose.