为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:3.0.3 DM v1.0.0
- 【问题描述】: 现在tidb通过DM同步线上业务库的分库分表,因业务需求,所有表分好几批次同步,建了很多个task来同步,现在已经全库所有表都同步到tidb了,想把这多个task合并为一个task,在不影响同步时效性的情况下有好的操作办法么?
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
你好,
正在分析,请稍等
前提:要确保多个 task 同步任务的 checkpoint 位点相近。
停掉 task 同步任务
从 dm_meta 中查看多个 task 任务的 checkpoint 位点(注意,该位点非实时更新)
记录多个 task 同步任务中最小的 checkpoint 、 最大的 checkpoint 位点
新建 task 配置增量同步
增量同步起始位点为第 2 步中获取到的最小 checkpoint 点
task 中配置黑白名单,白名单中配置所有需要同步的表
task 中配置 safe-mode 为 true
开启 task 同步任务
注意:在 safe-mode 为 true 的配置下,同步一段时间后,如果这时的这个合并后的 task 的 checkpoint > 了第 2 步时记录的最大 checkpoint,则可以 stop-task 后把 safe-mode 改回 false 再重新 start-task。
停掉 task 同步任务
从 dm_meta 中查看多个 task 任务的 checkpoint 位点(注意,该位点非实时更新)
记录多个 task 同步任务中最小的 checkpoint 、 最大的 checkpoint 位点
修改原有 task 配置
修改原有 task 中的 xxx_syncer_checkpoint 位点信息,设置为最小的 checkpoint 位点(谨慎修改)
task 配置中增加白名单表
task 配置中设置 safe-mode 为 true
开启 task 同步任务
注意:在 safe-mode 为 true 的配置下,同步一段时间后,如果这时的这个合并后的 task 的 checkpoint > 了第 2 步时记录的最大 checkpoint,则可以 stop-task 后把 safe-mode 改回 false 再重新 start-task。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。