数据复制服务 DRS-将DB2 for LUW同步到GaussDB分布式版:注意事项

时间:2024-11-26 14:45:23

注意事项

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

表4 注意事项

类型名称

使用和操作限制

使用限制

通用:

  • 不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
  • 源库不允许有未提交的DDL事务。

全量同步阶段:

  • 对于全量同步中的目标数据库表对象,不能进行写入操作,否则会导致数据不一致。
  • 全量同步分为表结构同步(含索引)、数据同步两个阶段,任务中只要有一个表的结构在目标库中创建成功即进入数据同步阶段。如果同步完成产生失败表,再启动时将只同步数据,不同步表结构信息,用户必须手动在目标库中建表。
  • 全量同步分区表的结构时会将该对象转为非分区的普通表。
  • 全量同步表结构时只支持字符串或数字类型的普通默认值约束,不支持函数、序列等类型的默认值约束,如有需要,用户必须手动在目标库创建对应表的默认值约束。
  • 全量同步表结构时,目标库存在与某用户名称同名的schema,用其他用户进行同步表结构到schema时,需要使用grant [role] to [role]的方式为此用户赋权,否则可能因为无法创建表结构而导致同步失败。

增量同步阶段:

  • 增量同步时,BLOB末尾的0x00、CLOB末尾的空格会被截断。
  • 增量同步时阶段,支持任务再编辑追加同步对象。
  • 增量同步阶段,源库DB2 for LUW对主键列或无主键表的第一列的update操作会导致在 GaussDB数据库 更新分布列,有可能会造成数据不一致,所以业务上要尽量规避对上述列的更新。

常见故障排查:

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

其他限制

  • 确保目标库已创建以小写字母命名的数据库。
  • 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
    • 目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。
    • 目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。
  • 不建议在数据库中使用非精确数值类型做主键,该特性影响DRS增量场景下对UPDATE、DELETE语句的同步。
  • 不支持ARM虚拟机环境。
  • 如果无主键表中包含LOB、LONG等大字段,增量同步阶段存在大字段数据不一致的可能性。
  • 如果表结构存在DB2SECURITYLABEL字段类型,读取全量阶段数据可能会受DB2 LBAC(基于标签的访问控制)影响,导致源库和目标库数据不一致。
  • 如果源库和目标库字符集不一致,如源库是GBK,目标库是UTF8,由于GBK字符集单个中文字符占用2个字节,而UTF8字符集单个中文字符占用3个字节,可能会导致CHAR或VARCHAR类型数据同步到目标库后超出字段定义长度,所以客户需要根据实际情况对目标库CHAR和VARCHAR类型字段长度进行扩充(如扩大为源库的1.5倍)。
  • 任务启动后,对于分区表的detach操作可能导致数据不一致。
support.huaweicloud.com/realtimesyn-drs/drs_04_0472.html