浏览迁移工具选项
可以使用多种工具来规划并将数据迁移到 Azure Database for MySQL 灵活服务器。 每个选项都有其优点和缺点,如以下部分所述。
使用 Azure Migrate 发现和评估 MySQL 工作负载
Azure Migrate 提供一个集中中心,用于发现、评估和迁移本地基础结构,包括物理环境中托管的服务器、数据库和 Web 应用程序,到大规模的 Azure 平台即服务 (PaaS) 和基础结构即服务 (IaaS) 目标。 Azure Migrate 中的 MySQL 发现和评估功能(预览版)可协助你完成规划阶段,它让你能够:
- 在环境中发现 MySQL 实例及其属性,
- 评估迁移到 Azure Database for MySQL - 灵活服务器的就绪情况,以及
- 接收有关在 Azure Database for MySQL - 灵活服务器上托管 MySQL 工作负载的适当的计算和存储 SKU 的建议,以及相关的成本。
Azure Database for MySQL 导入 CLI
Azure Database for MySQL Import 是一个 CLI 命令,可用于将 MySQL 本地或虚拟机 (VM) 工作负载无缝迁移到 Azure Database for MySQL - 灵活服务器。 它提供了一个简单且快速的迁移路径。 该命令根据用户输入预配目标灵活服务器,然后将存储在 Azure Blob 存储帐户中的源服务器的物理备份文件(使用 Percona XtraBackup 获取)还原到目标灵活服务器实例。
该 CLI 命令为:az mysql flexible-server --import
评估导入 CLI 时,请务必考虑以下注意事项。
源服务器配置必须包含以下参数和值:
lower_case_table_names = 1 innodb_file_per_table = ON
系统表空间名称应为
ibdata1
,大小至少为 12 MB(MySQL 默认值)。迁移仅支持 InnoDB 引擎。
源服务器上的某些元素不会迁移,例如配置(防火墙、用户、特权)。
在迁移期间禁用高可用性 (HA) 以优化性能。 在迁移完成后,请务必重新启用 HA。
Azure 数据库迁移服务
Azure 数据库迁移服务是一项完全托管的服务,可帮助你简化、引导和自动将数据库迁移到 Azure 数据平台。
Azure 数据库迁移服务的工作原理是创建和运行可重复的迁移项目。 源的范围从本地工作负载到基于云的工作负载,如 Amazon RDS MySQL。 虽然 Azure 数据库迁移服务在技术上是脱机迁移工具,但它利用 MySQL binlog
执行近零停机联机迁移。
mysqldump
mysqldump
客户端实用工具通常与 MySQL 一起安装,是数据库备份工具。 可以使用 mysqldump 将源数据库的架构和内容转储到 SQL 语句中。 然后,可以按原样运行这些语句,将完整或部分内容还原到目标数据库。
对于大型数据集,通过运行 SQL 语句还原转储可能会性能不佳。 例如,索引一次一条语句地更新,这可能会重载磁盘 I/O 性能。 因此,可以通过将 mysqldump
与针对批量数据迁移优化的工具(如 mydumper
和 myloader
)配对来加快迁移速度。 使用 mysqldump
重新创建数据库架构,它是目标数据库中的登陆区域,以适应所导入的数据。
有时,需要自定义迁移数据传输。 你可能想要导出一部分数据以进行测试,或替换客户的目标数据库数据。 甚至可以在迁移数据之前修改数据,例如修改个人数据以调试测试数据库中的问题。
在这些方案中,mysqldump
提供最大的灵活性。 因为它能导出包含 SQL 语句的文件,因此你可以在目标服务器上运行语句之前选择如何修改数据。
mydumper 和 myloader
mydumper
和 myloader
是 MyDumper 包的一部分,这是一个开源 MySQL 备份工具。 与将整个架构输出到 SQL 语句以线性方式重新运行的 mysqldump
工具不同,MyDumper 工具利用并行度并提供了许多优势,例如按表和人类可读格式使用单独的文件,以及维护准确的源和目标二进制日志位置。
要迁移大型数据库,建议使用 mydumper
和 myloader
,因为这些工具通过利用并行度可提供 10 倍或更高的性能。
这些工具以 rpm 和 deb 包的形式向 Linux 作为二进制版本提供,并通过 Homebrew 向 macOS 提供。 在其他平台上,你需要从源编译工具,这会增加复杂性。
MySQL Workbench
MySQL Workbench 提供了用于处理 MySQL 的图形用户界面 (GUI),它提供对许多工具(包括用于数据库迁移的工具)的访问权限。 MySQL Workbench 在 MySQL 社区版和商业版中可用,如 MySQL Workbench 功能列表中所述。
MySQL binlog
mysqlbinlog
工具使用 MySQL 二进制日志,它会记录数据库更改事件,例如表修改或数据插入、更新和删除。 每个更改都是使用增量增加的位置标识的,你可以使用 mysqlbinlog
工具检查和操作每个更改。
可以将二进制日志用于联机和脱机迁移:
- 使用联机迁移时,二进制日志是将实时数据更改从源复制到目标的关键机制。
- 使用脱机迁移时,二进制日志通过精确生成自之前迁移的快照以来的更改来实现增量迁移。
二进制日志维护需要额外的处理和存储资源。