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

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

前提条件

源端及目标端

要求

源端

Microsoft Azure Database for MySQL实例

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

  • 已创建高权限账号。

  • 如果源端实例配置了访问控制,请先在源端安全配置中添加DTS服务器的IP地址段,再配置数据迁移任务。

目标端

阿里云云数据库RDS MySQL实例

注意事项

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

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

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

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

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

    说明

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

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

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

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

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

费用说明

迁移类型

链路配置费用

公网流量费用

结构迁移和全量数据迁移

不收费。

当目标库的接入方式公网IP时收取公网流量费用。更多信息,请参见计费概述

增量数据迁移

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

操作步骤

  1. 进入目标地域的迁移任务列表页面。

    1. 登录数据传输服务DTS控制台

    2. 在左侧导航栏,单击数据迁移

    3. 在页面左上角,选择实例所属地域。

  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。

    数据库账号

    目标RDS实例的高权限账号。

    数据库密码

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

    连接方式

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

  4. 配置完成后,单击页面下方的测试连接以进行下一步

    请确保已将弹跳框中的DTS服务器IP地址加入到Azure平台的MySQL数据库的白名单安全设置中,然后单击测试连接

    重要

    添加DTS服务器的IP地址段可能会存在安全风险,一旦使用本产品代表您已理解和确认其中可能存在的安全风险,并且需要您做好基本的安全防护,包括但不限于加强账号密码强度防范、限制各网段开放的端口号、内部各API使用鉴权方式通信、定期检查并限制不需要的网段。

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

    说明

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

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

    image

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

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

    说明

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

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