Using Percona XtraBackup as a way to migrate a MySQL instance to a newer server?

It was recommended to me that Percona XtraBackup was a better way to migrate a MySQL 5.5 instance to a new server running MySQL 5.5. Is this correct? Does Percona allow me to migrate the database while live, and then, once the initial sync to the new DB server happens, repoint my data ingestion endpoints at the new DB server and then just run a follow up pass of Percona, to catch and data that may have been missed during the initial sync?

Hi onetech-it;

The high level process is to set up a new copy of your data (the new master), then setup replication from your current master database to the new master database to keep it in sync. Then when you are ready to switch over to the new master database, pause in-coming traffic to the current master (i.e. either shutdown your app, or flush tables with read lock on the current master), wait until new data stops coming in and the new master is caught up, and then re-point your app(s) at the new master database.

The role Xtrabackup plays in this would be just to setup the new copy of your data by reloading a backup on the new host to serve as your new master database, and in giving you the replication coordinates to connect back to the current master through replication to keep it in sync while you are waiting to cutover to it.

See the below guide on setting up a new slave, which is basically what you are doing here (the “slave” will just become your new master eventually, but the process is the same setting it up).