数据复制服务 DRS-将MariaDB同步到MariaDB:注意事项

时间:2024-06-24 11:40:40

注意事项

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

表4 注意事项

类型名称

使用和操作限制

源数据库限制

  • 不支持reset master或reset master to命令,可能会导致DRS任务失败或者数据不一致。
  • 源数据库不允许存在与目标库同名的无主键表。
  • 如果源数据库MariaDB不支持TLS1.2协议,需提交运维申请才能使用SSL测试连接。
  • 如果源数据库版本低于10.4.3,选择库级同步,任务启动之后,请不要在对象选择的库里使用带json数据类型的建表语句创建表结构(如create table t1 (c1 json)),或者使用带json数据类型的加列语句(如 alter table t1 add column c1 json),否则数据将不一致。

使用限制

通用:

  • 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
  • 请勿在目标库做写入操作,否则可能导致数据不一致。

全量同步阶段:

  • 请勿在源库执行任何DDL,否则可能导致数据不一致或任务失败。
  • 全量同步过程中,对MyISAM表执行修改操作时,可能造成数据不一致。

增量同步阶段:

  • 增量同步支持DDL语句。
  • 增量同步支持表的重命名,源表和目标表必须都在对象选择里。
  • 增量同步支持任务再编辑追加同步对象。

同步对比阶段:

  • 建议在源库的业务低峰期进行数据比对,防止误报不一致数据,以及减少对源库和DRS任务的冲击。
  • 在增量同步过程中做对比时,源库如果存在写入,则对比结果可能不一致。
  • 不支持在全量同步过程中做对比。
  • 不支持数据对比过程中做限速。

常见故障排查:

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

其他限制

  • 已选择的表与未选择的表之间互相rename的DDL操作,在任务同步中会被过滤掉,可能会导致任务失败或数据不一致。
    • 对于一个DDL中存在一个rename的情况(例如:rename A TO B),只支持rename前后库表都在已选择库表中的rename操作(A和B都在已选择库表中),其他情况的rename DDL会被过滤;
    • 对于一个DDL中存在多个rename的情况(例如:rename A TO B, B TO C),只支持rename前后库表都在已选择库表中的部分rename操作 ,其他情况的rename DDL会被过滤(A和B在已选择库表中,C不在,仅执行rename A TO B)。
    • 不建议在多对一同步场景下的进行rename操作,可能会导致任务失败或数据不一致。
  • 如果专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
  • 源库和目标库是相同的RDS实例时,不支持没有库映射的实时同步。
  • 源库和目标库为RDS for MariaDB实例时,不支持带有TDE特性并建立具有加密功能表。
  • 支持断点续传功能,但是对于无主键的表可能会出现重复插入数据的情况。
  • 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
    • 目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。
    • 目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。
  • 不支持源数据库恢复到之前时间点的操作(PITR)。
  • 不支持目标数据库恢复到全量同步时间段范围内的PITR操作。
  • 不支持外键级联操作。当外键是普通索引的时候,可能会导致表结构创建失败,建议改成唯一索引。
  • 不支持强制清理binlog,否则会导致同步任务失败。
  • 不支持分区表的分区字段进行列映射。
  • 任务创建后,目标库不能设置为只读。
  • 需要DRS任务同步索引的情况下,目标库对应表上不能存在同名但不同列信息的索引。全量阶段DRS会忽略对应表上已存在的同名索引,增量阶段DDL根据索引名操作索引时会触发错位问题。
support.huaweicloud.com/realtimesyn-drs/drs_04_0493.html