数据复制服务 DRS-将MySQL分库分表迁移到DDM:注意事项

时间:2024-05-27 19:12:18

注意事项

为保证任务的正常运行,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的操作。
  • 整个迁移过程中,不允许源端DDM正在迁移的表做改变拆分键的操作;也不允许将单表/广播表改为拆分表,拆分表改为单表/广播表。

全量迁移阶段:

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

增量迁移阶段:

  • 选择表级对象迁移时,增量迁移过程中不支持对表进行重命名操作。
  • 增量迁移阶段,不支持源数据库进行恢复到某个备份点的操作(PITR)。
  • 增量迁移阶段,支持断点续传功能,在主机系统崩溃的情况下,对于非事务性的无主键的表可能会出现重复插入数据的情况。
  • 增量迁移阶段,支持部分DDL语句,包括:ADD COLUMN、CREATE TABLE、CREATE INDEX、DROP INDEX、RENAME INDEX、ADD INDEX。
  • 增量迁移阶段,对同一张表或列做DDL操作,需要在业务低峰期,并且时间间隔1分钟以上。

结束任务:

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

其他限制

  • 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建迁移任务。
  • 数据类型不兼容时,可能引起迁移失败。
  • 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。
  • 源库的表如果包含系统列_ddm_lock、_slot,该列下的数据在全量、增量迁移过程中都会被过滤,导致数据丢失。
  • 任务创建后,源数据库不支持增加逻辑库或修改旧逻辑库关联新的RDS,否则会导致数据无法正常迁移或任务失败。
  • 目标库实例若选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在迁移到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
support.huaweicloud.com/realtimemig-drs/drs_04_0094.html