本文介绍谷歌云MySQL数据库迁移到阿里云的步骤及注意事项。

前提条件

迁移限制

  • 结构迁移不支持event的迁移。
  • 对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,对于double类型,精度为308位,请先确认DTS的迁移精度是否符合业务预期。
  • 如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败。
  • 当选择增量迁移时,源端的MySQL实例需要按照要求开启binlog。
  • 当选择增量迁移时,源库的binlog_format要为row。
  • 当选择增量迁移且源MySQL如果为5.6及以上版本时,它的binlog_row_image必须为full。
  • 当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog文件ID乱序,可能导致增量迁移数据丢失。
说明 参数的修改可以在实例详情 > 配置 > 修改配置 > 添加数据库标志里进行修改。

注意事项

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

操作步骤

  1. 登录谷歌云MySQL数据库实例,查看实例详情页面的公共IP地址
    说明 若未开启外网地址请在配置 > 修改配置 > 设置连接里进行设置。


  2. 单击配置 > 修改配置 > 设置连接 > 添加网络,放通DTS里的源库实例地区的IP地址。

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


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


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


  10. 单击下一步,在购买配置确认对话框中,勾选《数据传输(按量付费)服务条款》并单击立即购买并启动
    说明 结构迁移和全量迁移任务暂不收费,增量迁移根据链路规格按小时收费。
  11. 等待迁移任务完成即可。