为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:4.0.1
- 【问题描述】:由于上游数据源切换,导致DM同步中断。从较早时间点的binlog进行回放时需要配置task.yaml 中safe-mode为true,兼容已执行的SQL。但是start-task 几分钟后会继续报错,该配置是否有方式长时间生效
配置如下:
syncers:
global:
worker-count: 8
batch: 100
safe-mode: true
小王同学
2
你好,看你这边描述,怀疑 safe-mode 参数没生效,可以在 dm-worker 中启动 task 时会读取参数,可以确认下。
配置 safe-mode 后是永久生效的。
我配置在task.yaml中的,但是重启task没有生效。
小王同学
5
小王同学
7
好的,数据追上后,建议把 safe-mode 参数关闭,该参数会对上游 SQL 进行转换,可能会带来同步延迟的问题。建议后续追上后,关闭参数。
该模式的主要特点为将来自上游的 INSERT
改写为 REPLACE
,将 UPDATE
改写为 DELETE
与 REPLACE
后再向下游执行。在启动或恢复增量复制任务的前 5 分钟 TiDB DM 会自动启动 Safe mode,另外也可以在任务配置文件中通过 safe-mode
参数手动开启。
system
(system)
关闭
8
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。