数据复制服务 DRS-将DDM同步到GaussDB(DWS):注意事项

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

注意事项

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

表4 注意事项

类型名称

使用和操作限制

源数据库限制

  • 源物理分片数据库建议开启skip-name-resolve,减少连接超时的可能性。
  • 源物理分片数据库不支持枚举类型和set集合类型的。
  • 源库的timestamp列的默认值,需要在目标库的合理取值内,否则会导致同步失败。

使用限制

通用:

  • 不允许源端DDM正在同步的表做改变拆分键的操作,也不允许将单表/广播表改为拆分表,拆分表改为单表/广播表。

全量同步阶段:

  • 全量阶段基于索引实现上差异,只保留普通B-Tree索引,其他索引默认不同步。 GaussDB (DWS)索引过多时会影响存储空间和入库性能,建议用户可根据业务需求按需建索引。

增量同步阶段:

  • 不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
  • 如果需要对源库需要同步的表结构进行修改,则用户必须在目标库同步修改表结构。
  • 支持部分DDL语句,包括:ADD COLUMN、CREATE TABLE、MODIFY COLUMN、CREATE INDEX、DROP INDEX、RENAME INDEX。
  • 对同一张表或列做DDL操作,需要在业务低峰期,并且时间间隔1分钟以上。
  • 不支持源数据库进行恢复操作。
  • 不支持DELETE和UPDATE目标数据库主键类型为binary,text,blob,clob的表。

常见故障排查:

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

其他限制

  • 如果专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
  • 数据类型不兼容时,可能引起同步失败。
  • 源数据库中存在主键重复的数据时,直接同步将导致目标库数据比源库少,请务必检查并订正数据后启动同步。
  • 源库的表如果包含系统列_ddm_lock、_slot,该列下的数据在全量、增量同步过程中都会被过滤,导致数据丢失。
  • 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
    • 目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。
    • 目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。
  • 在源端,同一个database(schema)下面的不同表可以存在相同的索引名或约束名。而目标端GaussDB(DWS)中,同一个schema中索引和约束名是唯一的,且长度存在上限。为防止索引和约束名冲突,DRS同步到目标表上的索引名称将变为此格式:哈希值+原索引名(可能被截断)+_key。其中哈希值由“原库名_原表名_原索引名”计算得到。同理,表上的原约束名将变为:哈希值+原约束名(可能被截断)+_key,或表名_原索引名。
  • 任务创建后,源数据库不支持增加逻辑库或修改旧逻辑库关联新的RDS,否则会导致数据无法正常同步或任务失败。
  • 任务再编辑时,对新添加的表,在再编辑变更过程中禁止大批量导数据,建议在业务低峰期进行再编辑操作。
support.huaweicloud.com/realtimesyn-drs/drs_04_0116.html