背景信息

本文介绍使用阿里云数据传输服务(DTS),从Azure Database for MySQL数据库全量迁移到阿里云RDS for MySQL数据库。

前提条件

迁移限制

  • 结构迁移不支持 event 的迁移。
  • 对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,对于double类型,精度为308位,请先确认DTS的迁移精度是否符合业务预期。
  • 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败。
说明 参数的修改可以在 实例详情 > 配置 > 修改配置 > 添加数据库标志里进行修改。

注意事项

对于七天之内的异常任务,DTS会尝试自动恢复,可能会导致迁移任务的源端数据库数据覆盖目标实例数据库中写入的业务数据,迁移任务结束后务必将DTS访问目标实例账号的写权限revoke命令回收掉。

操作步骤

  1. 登陆Azure Database for MySQL数据库,查看概述页面的服务器名称

  2. 左侧菜单栏单击连接安全性,在防火墙规则页面放通DTS的IP地址,设置完成后单击保存
    说明 放通DTS的IP地址后才可以通过DTS进行数据迁移,具体需放通IP地址请参见源库实例地区


  3. 登录DTS控制台
  4. 在左侧菜单栏单击数据迁移,单击右上角创建迁移任务
  5. 填写源库和目标库信息,具体参数配置说明如下:
    库类别 参数 说明
    源库 实例类型 源库实例类型,这里选择有公网IP的自建数据库
    实例地区 如果您的实例进行了访问限制,请先放开对应地区公网IP段的访问权限后,再配置数据迁移任务。
    说明 可以单击右侧 获取DTS IP段查看、复制对应地区的IP段。
    数据库类型 源数据库类型,这里选择MySQL
    主机名或IP地址 Azure Database for MySQL数据库的服务器名称
    端口 默认的3306端口。
    数据库账号 Azure Database for MySQL数据库的高权限账号。
    数据库密码 Azure Database for MySQL数据库高权限账号的密码。
    目标库 实例类型 目标实例的类型,这里选RDS实例
    实例地区 目标实例的地域。
    RDS实例ID 对应地区下的实例ID,这里选择想要迁移到的目标实例的ID。
    数据库账号 目标实例的拥有读写权限的账号。
    数据库密码 目标实例的对应账号的密码。
    连接方式 非加密传输SSL安全连接两种连接方式。
    说明
    • 支持并且开启了SSL安全连接的实例才需要选择SSL安全连接。
    • SSL安全加密连接会显著增加CPU消耗。


  6. 填写完毕后单击测试连接,确定源库和目标库都测试通过
  7. 单击授权白名单并进入下一步
  8. 勾选对应的迁移类型,在迁移对象框中将想要迁移的数据库选中,单击移动到已选择对象框。
    说明 为保证迁移数据的一致性,建议迁移过程中停止数据库的使用,选择结构迁移+全量数据迁移。

    结构迁移和全量数据迁移暂不收费。



  9. 单击预检查并启动,等待预检查结束。
    说明 如果检查失败,可以根据错误项的提示进行修复,然后重新启动任务。


  10. 单击下一步,在购买配置确认对话框中,勾选《数据传输(按量付费)服务条款》并单击立即购买并启动
  11. 单击目标地域,查看迁移状态。迁移完成时,状态为已完成

    至此,完成 Azure Database for MySQL数据库迁移到阿里云 RDS 的数据迁移任务。