Azure Database for MySQL数据库迁移到阿里云

本文介绍Microsoft Azure Database for MySQL数据库迁移到阿里云云数据库RDS MySQL的注意事项及操作步骤。

前提条件

源端及目标端

要求

相关参考

源端

Microsoft Azure Database for MySQL实例

  • 已开通公网访问,并获取外网连接地址及端口。

  • 已创建高权限账号。

  • 如果您的实例配置了访问控制,则请先为DTS服务开放访问权限后,再配置数据迁移任务。DTS服务的IP地址段信息,请参见添加DTS服务器的IP地址段

Microsoft Azure Database for MySQL官方文档

目标端

阿里云云数据库RDS MySQL实例

  • 已创建阿里云RDS MySQL实例。

  • 已创建高权限账号。

  • 阿里云RDS MySQL的存储空间须大于Azure Database for MySQL已使用的存储空间。

注意事项

  • 结构迁移不支持event的迁移。

  • DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移(例如源库和目标库的CPU负载在30%以下)。

  • 如果源库中待迁移的表没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。

  • 对于数据类型为FLOAT或DOUBLE的列,DTS会通过ROUND(COLUMN,PRECISION)来读取该列的值。如果没有明确定义其精度,DTS对FLOAT的迁移精度为38位,对DOUBLE的迁移精度为308位,请确认迁移精度是否符合业务预期。

  • DTS会自动地在阿里云RDS MySQL中创建数据库,如果待迁移的数据库名称不符合阿里云RDS的定义规范,您需要在配置迁移任务之前在阿里云RDS MySQL中创建数据库。

    说明

    关于阿里云RDS的定义规范和创建数据库的操作方法,请参见创建数据库

  • 对于迁移失败的任务,DTS会触发自动恢复。在您将业务切换至目标实例前,请务必先结束或释放该任务,避免该任务被自动恢复后,导致源端数据覆盖目标实例的数据。

  • DTS会尝试恢复七天之内迁移失败任务。因此业务切换至目标实例前,请务必结束或释放该任务,或者将DTS访问目标实例账号的写权限用revoke命令回收掉。避免该任务被自动恢复后,源端数据覆盖目标实例的数据。

  • 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败。

  • 建议源和目标库的MySQL版本保持一致,以保障兼容性。

费用说明

迁移类型

链路配置费用

公网流量费用

结构迁移和全量数据迁移

不收费。

通过公网将数据迁移出阿里云时将收费,详情请参见计费概述

增量数据迁移

收费,详情请参见计费概述

操作步骤

  1. 登录DTS控制台

  2. 在左侧菜单栏单击数据迁移,然后单击创建任务

  3. 填写源库和目标库信息,具体参数配置说明如下:

    库类别

    参数

    说明

    源库

    数据库类型

    源数据库类型,本示例选择MySQL

    接入方式

    源库实例接入DTS的方式,本示例选择公网IP

    实例地区

    公网接入,选择任意地区即可,本示例选择华东1(杭州)

    如果您的实例配置了访问控制,则请先为DTS服务开放访问权限后,再配置数据迁移任务。DTS服务的IP地址段信息,请参见添加DTS服务器的IP地址段

    域名或IP地址

    Microsoft Azure Database for MySQL数据库的服务器名称

    端口

    Microsoft Azure Database for MySQL数据库的服务端口(需开放至公网),默认为3306

    数据库账号

    Microsoft Azure Database for MySQL数据库的高权限账号。

    数据库密码

    Microsoft Azure Database for MySQL数据库的高权限账号的密码。

    目标库

    数据库类型

    目标实例的类型,本示例选择MySQL

    接入方式

    目标实例接入DTS的方式,本示例选择云实例

    实例地区

    目标实例所在的地域。

    RDS实例ID

    对应地区下的实例ID,这里选择想要迁移到的目标实例的ID。

    数据库账号

    目标实例的高权限账号。

    数据库密码

    目标实例的高权限账号对应的密码。

    连接方式

    非加密传输SSL安全连接两种连接方式,选择SSL安全加密连接会显著增加阿里云RDS MySQL实例的CPU消耗。

  4. 填写完毕后单击测试连接以进行下一步,在DTS服务器访问授权确定窗口中,再次单击测试连接以进行下一步

  5. 配置任务对象及高级配置步骤,选择迁移类型

    说明

    为保证迁移数据的一致性,建议选择库表结构迁移+全量数据迁移+增量数据迁移

  6. 源库对象框中将想要迁移的数据库选中,单击,移动到已选择对象框。迁移

  7. 单击下一步高级配置,保持默认配置即可。

  8. 单击下一步保存任务并预检查,等待预检查结束。

    说明

    如果检查失败,可以根据错误项的提示进行修复,然后重新启动任务。

  9. 单击下一步购买,在购买页,勾选《数据传输(按量付费)服务条款》并单击购买并启动

    说明

    结构迁移和全量迁移任务暂不收费,增量迁移根据链路规格按小时收费。

  10. 等待迁移任务完成即可。