How to Migrate Exchange Server 2016 to 2019 | Part 3

How to Migrate Exchange Server 2016 to 2019 | Part 3

How to Migrate Exchange Server 2016 to 2019 | Part 3

Migrate Exchange Server 2016 to 2019 | Part 1
Migrate Exchange Server 2016 to 2019 | Part 2
Migrate Exchange Server 2016 to 2019 | Part 3


This is the third part of the three-part article series on How to Migrate Exchange Server 2016 to 2019. If you are landed directly to this page, please take some time, and go through the first two parts in the link above and come back to this part as this part is a continuation of the other two parts.

In this part of the article series, we are going to look at renaming the database, cutover mail flow, move mailboxes to Exchange Server 2019 including user mailbox, arbitration mailbox, and audit mailbox. In the end, we are going to look at decommissioning Exchange Server 2016 once all the workloads are migrated to Exchange Server 2019.

Rename and Move Default Mailbox Database

We are renaming the database as its long and random numbers in the default database name. So, giving a meaningful name to the database would be appropriate and move the path of the database to somewhere having enough disk space for the database to grow and location to store the transactional logs.

Get-MailboxDatabase -Server ex2019 | Set-MailboxDatabase -Name MBX-DB-2019

Move-DatabasePath -Identity MBX-DB-2019 -EdbFilePath C:\ExchangeDatabases\MBX-DB-2019\MBX-DB-2019.EDB -LogFolderPath C:\ExchangeDatabases\MBX-DB-2019_Log

Cutover Client Access

We have completed renaming the default database name and moving the database file location to other drives. The next step on this migration is to point Exchange server 2019 IP address to hostname records such as Autodiscover and exchange server FQDN hostname. The email clients internally will point to the exchange server for client access. We need to do the NAT settings on the firewall to point to Exchange Server 2019 as well. We are making these changes even though the mailboxes are still in Exchange Server 2016. Exchange server 2019 will act as a proxy to the mailboxes residing in Exchange server 2016.

Move Mailboxes to Exchange Server 2019 Database to Migrate Exchange Server 2016 to 2019

We have completed most of the Exchange server 2019 configuration-related settings and migration work. But the mailbox move is the meaty thing that we need to do next and it is the most time-consuming. We are migrating all mailboxes which are residing in Exchange Server 2016. We can do it through the Exchange Admin Center also.

Get-Mailbox -Database MBX-DB-2016 | New-MoveRequest -TargetDatabase MBX-DB-2019 -BatchName “MBX-DB-2016 To MBX-DB-2019”

Periodically you can check the mailbox move status by running the command

Get-MoveRequest | Get-MoveRequestStatistics

In this case, our mailboxes are less in size, so the mailboxes completed moving to Exchange 2019 server database.

We are going to move all arbitration mailboxes from Exchange server 2016 to 2019. The command to move arbitration mailboxes is

Get-Mailbox -Server ex2016 -Arbitration | New-MoveRequest

You can check if the arbitration mailboxes move completed by running the following command

Get-Mailbox -Arbitration | Get-MoveRequest

From Exchange Server 2016 onwards, there is one more system mailbox called Audit Log. You can check the Audit Log mailbox containing the server by running the following command

Get-Mailbox -AuditLog

You can move the audit log mailbox to Exchange 2019 server running the following command

Get-Mailbox -AuditLog | New-MoveRequest

The following command will show the status of the mailbox move.

Get-Mailbox -AuditLog | Get-MoveRequest

Migrate Exchange Server 2016 to 2019

Decommission Exchange Server 2016

We have completed moving all the workloads such as mailboxes and service points to Exchange Server 2019. In the process of moving all the workloads, we need to remove the Exchange server 2016 hostname from send connector. Login to ECP and go to mail flow\send connector. Edit the send connector and on the scoping page, remove Exchange 2016 server name from the list. If Exchange Server 2019 was not already added, add it now and remove the exchange 2016 server hostname.

Also, in the process of decommissioning Exchange server 2016, we need to remove the Exchange 2016 server mailbox databases. Run the following command from Exchange Management Shell to remove the Exchange server 2016 databases.

Get-MailboxDatabase -Server EX2016 | Remove-MailboxDatabase

Migrate Exchange Server 2016 to 2019

Now, it’s time to uninstall Exchange server 2016, log in to Exchange Server 2016 server desktop and go to control panel, Add Remove Programs and select Exchange Server 2016 from the list and uninstall.

Migrate Exchange Server 2016 to 2019

The Remove Exchange Server Wizard will open and click Next to continue.

Migrate Exchange Server 2016 to 2019

Once the readiness checks are completed click uninstall to uninstall Exchange Server.

Migrate Exchange Server 2016 to 2019

The Uninstall Progress will show the uninstall step and its progress.

Migrate Exchange Server 2016 to 2019

Once uninstall process is completed, click Finish Exit out of Uninstall wizard.

Migrate Exchange Server 2016 to 2019


In this three-part article series, we have started with discussing Exchange Server 2019 installation on the Existing Exchange Server organization with prerequisites install followed by the exchange server setup. We have discussed configuring Exchange Server 2019 components such as Outlook Anywhere, Virtual Directories, Service Connection Point, and Certificate import from the old Exchange server. We have discussed Client access service cutover and mailbox move. In the end, we have decommissioned the old Exchange server which includes uninstallation of the Exchange server.

I had already created Exchange Server 2013 to 2019 migration, even though I mentioned Exchange server 2013 and 2016 migration is more or less the same, most of the users migrating Exchange server 2016 are not following that article. Also, I thought an exclusive article series just for Exchange Server 2016 to 2019 will help migrate flawlessly.

This is the end of the Exchange Server 2016 to 2019 migration demonstration; I look forward to connecting with you to clarify your questions and answer them and I will be helpful to solve the issues in case you come across any. I will join you in an instance with another article and would like to say goodbye for now. Thanks for following my article to migrate your Exchange server.

Migrate Exchange Server 2016 to 2019 | Part 1
Migrate Exchange Server 2016 to 2019 | Part 2
Migrate Exchange Server 2016 to 2019 | Part 3

3 Comments on "How to Migrate Exchange Server 2016 to 2019 | Part 3"

    great guide. Have you ran into an issue where accessing settings from ECP on the 2019 server causes the Domain Controller to reboot? i get the following error on the Domain controller.
    The process wininit.exe has initiated the restart of computer DomainControllerName on behalf of user for the following reason: No title for this reason could be found
    Reason Code: 0x50006
    Shutdown Type: restart
    Comment: The system process ‘C:\Windows\system32\lsass.exe’ terminated unexpectedly with status code -1073741819. The system will now shut down and restart.

    Nevermind. I just have bad luck. The January 11, 2022, Cumulative update had a bug that caused this issue. Patching my domain controller with KB5010794 for Server 2012 R2 fixed the reboots, and in turn, Exchange is working fine now.

    Thanks for this great article. It helps me a lot.
    What if you have move to a new domain? i have a TDR to submit about a new project and i would like to have more ideas.
    For Example: You moved from “” to “”. You had Exchange Server 2016 on “”. For “” you had Exchange Server 2019 installed. Everything is configured. How will the migration from the Exchange 2016 to 2019 will be done?
    Thank you in advance for your Help..

Leave a Reply

Your email address will not be published. Required fields are marked *