迁移须知

最近更新时间:2021-10-19 16:38:05

查看PDF

前提条件

  • MySQL数据库版本为5.5、5.6、5.7、8.0,目标实例版本不得低于源实例版本;
  • 目标实例存储空间需大于源数据库占用的存储空间。

注意事项

  • 如果源数据库没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
  • DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会加重数据库压力。因此您需要在执行数据迁移前评估源库和目标库的性能,建议您在业务低峰期进行数据迁移。
  • 数据迁移期间注意不要手动删除binlog文件,否则可能引起迁移失败;
  • 预检查中如果源库日志模式检查失败,源数据库修改binlog_format、binlog_row_image后,请注意重启数据库,否则可能引起数据不一致;
  • 数据迁移期间,避免会话级别修改binlog_format为ROW以外的其他模式,避免会话级别修改binlog_row_image为FULL以外的其他模式,否则可能引起迁移失败;
  • 迁移期间,避免在目的数据库进行写入操作,否则可能引起数据不一致;
  • 对于迁移失败的任务,DTS会触发自动恢复。在您将业务切换至目标实例前,请务必先结束或释放该任务,避免该任务被自动恢复后,导致源端数据覆盖目标实例的数据;

迁移说明

  • 结构迁移
    将迁移对象的结构从源数据库迁移到目标数据库,目前DTS支持的结构迁移对象为表、视图、存储过程、函数。同时支持用户权限迁移,如迁移对象中包含视图、存储过程、函数,请确保这类对象的definer用户一并迁移,以防止特殊对象迁移后无法调用。
特别说明:不支持触发器、事件迁移,如需迁移,请在数据迁移结束后手动迁移。
  • 全量迁移
    将源数据库迁移对象的存量数据,迁移到目标数据库。
特别说明:由于全量数据迁移会并发插入,导致目标实例的表存在碎片,全量迁移完成后目标库的表空间会比源库的表
空间大。
  • 增量迁移
    通过读取源数据库的binlog,将源数据库的增量数据迁移到目标数据库。
    通过增量迁移,可以实现源端不停服的情况下迁移上云。
  • 一致性校验
    校验迁移前后源端与目标端数据一致性,及时发现不一致数据;

数据库账号的权限要求

数据库 结构迁移 全量迁移 增量迁移 一致性校验
源端为自建MySQL SELECT权限 SELECT权限 SELECT, RELOAD,REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW权限 CREATE,DROP,UPDATE,INSERT,SUPER 权限
源端为RDS MySQL实例 SELECT权限 SELECT权限 SELECT, RELOAD,REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW权限
目标RDS MySQL实例 读写权限 读写权限 读写权限 读写权限

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈