注意事项
为保证任务的正常运行,DRS提供了自动化的检查方法,在您启动DRS任务前,会针对源数据库和目标数据库的相关配置、条件进行检查。主要的检查项和对应的处理建议请参考预检查项。除了预检查项目之外,您还需要注意的事情参见表4。
表4 注意事项
类型名称 |
使用和操作限制 |
源数据库限制 |
源物理分片数据库建议开启skip-name-resolve,减少连接超时的可能性。 |
使用限制 |
通用:
- 在任务启动、任务全量同步阶段,不建议对源数据库做删除类型的DDL操作,这样可能会引起任务同步失败。
- 同步过程中,不允许修改、删除连接源和目标数据库的用户的用户名、密码、权限,或修改源和目标数据库的端口号。
- 同步过程中,不允许对源库需要同步的表结构进行修改。
- 同步过程中,不允许源端DDM正在同步的表做改变拆分键的操作;也不允许将单表/广播表改为拆分表,拆分表改为单表/广播表。
增量同步阶段:
- 不支持源数据库进行恢复操作。
- 支持部分DDL语句,包括:ADD COLUMN、CREATE TABLE、CREATE INDEX、DROP INDEX、RENAME INDEX、ADD INDEX。
- 对同一张表或列做DDL操作,需要在业务低峰期,并且时间间隔1分钟以上。
常见故障排查:
- 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考“故障排查”章节进行排查。
|
其他限制 |
- 如果专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
- 数据类型不兼容时,可能引起同步失败。
- 源库如果存在非标浮点类型,且非标浮点类型存在宽松模式可以写入但严格模式下无法写入的数据,同步过程可能会有数据不一致的风险。
- 对于表中的物理生成列,如果列是根据一个时间类型生成的,会存在此列数据不一致的可能性。
- 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。
- 目标端多的列要求非空且没有默认值,源端insert数据,同步到目标端后多的列为null,不符合目标端要求。
- 目标端多的列设置固定默认值,且有唯一约束。源端insert多条数据后,同步到目标端后多的列为固定默认值,不符合目标端要求。
- 任务创建后,源数据库不支持增加逻辑库或修改旧逻辑库关联新的RDS,否则会导致数据无法正常同步或任务失败。
- 目标库需要提前创建逻辑库。
- 目标库如果已存在数据,DRS在增量同步过程中源库相同主键的数据将覆盖目标库已存在的数据,因此在同步前需要用户自行判断数据是否需要清除,建议用户在同步前自行清空目标库。
- 目标库实例如果选择将时间戳类型(TIMESTAMP,DATETIME)的列作为分片键,则源库数据在同步到目标库之后,作为分片键的该时间戳类型列的秒精度将被丢弃。
- 目标数据库存在表的AUTO_INCREMENT值至少不能小于源库表的AUTO_INCREMENT值。
- 选择表级对象同步时,增量同步过程中不建议对表进行重命名操作。
- 任务再编辑时,对新添加的表,在再编辑变更过程中禁止大批量导数据,建议在业务低峰期进行再编辑操作。
- 当目标DDM版本大于3.0.4.1版本,结束任务时,DRS会自动刷新DDM的自增列(sequence)起始值。
|