数据复制服务 DRS-将MySQL迁移到GaussDB(for MySQL):注意事项

时间:2024-07-12 14:20:05

注意事项

为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考DRS预检查项一览表。除了预检查项目之外,您还需要注意的事情如表4所示

表4 注意事项

类型名称

使用和操作限制

源数据库限制

  • 源库不支持阿里云RDS的只读副本。
  • 如果源数据库为自建库,并且安装了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x时,内存管理器必须使用Jemalloc库,以避免因系统表频繁查询带来的内存回收不及时,并最终导致数据库Out of Memory问题。
  • 源数据库不支持mysql binlog dump命令。
  • 源数据库不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。
  • 相互关联的数据对象要确保同时迁移,避免迁移因关联对象缺失,导致迁移失败。
  • 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。
  • 由于MySQL本身限制,若源库的一次性事件(EVENT)设定的触发时间在迁移开始前,该事件(EVENT)不会迁移到目标库。

使用限制

通用:

  • 整个迁移过程中,不建议修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
  • 整个迁移过程中,不允许对正在迁移中的目标数据库进行修改操作(包括但不限于DDL、DML操作)。
  • 整个迁移过程中,不允许源库写入binlog格式为statement的数据。
  • 整个迁移过程中,不允许源库执行清除binlog的操作。
  • 整个迁移过程中,不允许在源库创建库名为ib_logfile的数据库。
  • 整个迁移过程中,不允许修改目标数据库主节点的浮动IP到只读节点。如果进行了修改,数据将会写入到只读节点,导致目标数据库和源数据库数据不一致。
  • 需要DRS任务迁移索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。

全量迁移阶段:

  • 任务启动和全量数据迁移阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。

增量迁移阶段:

  • 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。
  • 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。
  • 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。
  • 增量迁移阶段,支持DDL语句。

结束任务:

  • 任务正常结束

    在结束迁移任务时,将进行所选事件(EVENT)和触发器(TRIGGER)的迁移。请确保任务结束前,不要断开源和目标数据库的网络连通性,并在结束任务时关注迁移日志上报的状态,达到数据库完整迁移效果。

  • 任务强制结束

    强制结束将直接释放DRS资源,不会进行触发器、事件的迁移,请参考手工迁移触发器、事件。如果需要DRS进行触发器、事件迁移,请先修复DRS任务,待任务状态正常后,再正常结束任务。

常见故障排查:

  • 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。

其他限制

  • 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。
  • 目标数据库实例必须是 GaussDB (for MySQL)主备实例。
  • 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。
  • 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。
  • 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。
  • 不支持目标数据库恢复到全量迁移时间段范围内的PITR操作。
  • 源库和目标库为RDS for MySQ L实例 时,不支持带有TDE特性并建立具有加密功能表。
  • 如果源库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。
  • 在创建DRS任务之前,如果源或者目标数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。
  • 迁移任务目标数据库可以设置“只读”和“读写”。
    • 只读:目标数据库实例将转化为只读、不可写入的状态,迁移任务结束后恢复可读写状态,此选项可有效的确保数据迁移的完整性和成功率,推荐此选项。
    • 读写:目标数据库可以读写,但需要避免操作或接入应用后会更改迁移中的数据(注意:无业务的程序常常也有微量的数据操作),进而形成数据冲突、任务故障、且无法修复续传,充分了解要点后可选择此选项。
support.huaweicloud.com/realtimemig-drs/drs_04_0090.html