Decide the migration approach and tool
Now that you've learned the migration concepts, considerations and tools, let's understand how to decide the best tool and approach for your scenario. We recommend Azure MySQL Import CLI for all migrations from VMs and on-premises, and DMS for everything else. All other tools are community tools that can be used where the first two tools can't support the migration. The following table helps pick a tool based on your objective.
Objective | Tool | Description | Pros | Cons |
---|---|---|---|---|
Fast and simple migration path from on-premises servers or VMs | Azure Database for MySQL Import CLI | Restores a user-provided physical backup file of the source database (taken using Percona XtraBackup) to the target MySQL flexible server | Microsoft migration tool. Simple tool (single CLI command). Fast physical migration of large workloads. Doesn't require a live connection. Can prepare for online migration by setting up replication. | Migration from on-premises and VMs only as it requires Percona Xtrabackup backup file. |
Fast online and offline migrations from any source, hosted anywhere including AWS RDS and Aurora | Azure Database Migration Service (DMS) | A fully managed service designed to enable seamless migrations from multiple database sources to Azure data platforms with minimal downtime (online migrations). | Microsoft migration tool. Supports both offline and online migrations. UI-based. Repeatable migration templates. Supports migration of data, schema, and user account and privileges. | Requires a live connection. |
Migration of large workloads using a MySQL community tool | mydumper and myloader |
Download and install a command-line tool. Moves data in parallel from source to target. Can achieve high speed. | Fast migrations for large workloads due to parallel export and import. | May require throttling data import. |
Online migration using a MySQL native tool | binlog |
Set up MySQL binary log replication from source to target. Replicates changes in real-time. Switch databases once replication delay is zero. | Built-in replication mechanism, also used to implement read replicas. | More manual and advanced. Requires more resources to store and process data |
Highly customized offline migration | mysqldump |
Export all (or some) of source database as SQL statements, and execute in the target server to migrate the source's data. | Highly flexible built-in tool. Selectively export and import objects. | Manual. Poor performance for large workloads. |
Semi-automated offline migration | MySQL Workbench | Download and install a UI export and import tool. | Semi-automated; UI-based export and import | Only supports common switches and options |