数据复制服务 DRS-将MySQL迁移到DDM:使用须知

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

使用须知

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

表4 注意事项

类型名称

使用和操作限制

源数据库限制

  • 如果源数据库为自建库,并且安装了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的数据库。

全量迁移阶段:

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

增量迁移阶段:

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

结束任务:

  • 当目标DDM版本大于3.0.4.1版本,结束任务时,DRS会自动刷新DDM的自增列(sequence)起始值。

其他限制

  • 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。
  • 多对一场景下,创建迁移任务时,目标库读写设置需要跟已有任务设置为一致。
  • 由于无主键表缺乏行的唯一性标志,网络不稳定时涉及少量重试,表数据存在少量不一致的可能性。
  • 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。
  • 源库和目标库为RDS for MySQ L实例 时,不支持带有TDE特性并建立具有加密功能表。
  • 如果源库MySQL不支持TLS1.2协议,或者为版本较低的自建库(低于5.6.46或在5.7.0-5.7.28之间),需提交运维申请才能使用SSL测试连接。
  • 在创建DRS任务之前,如果源数据库实例开启并设置了SQL限流规则,可能会导致DRS任务失败。
  • 目标库若已存在数据,DRS在增量迁移过程中源库相同主键的数据将覆盖目标库已存在的数据,因此在迁移前需要用户自行判断数据是否需要清除,建议用户在迁移前自行清空目标库。
  • 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在迁移到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
support.huaweicloud.com/realtimemig-drs/drs_04_0089.html