DM切换上游mysql的ip

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:DM v1.0.6
  • 【问题描述】:我们有个需求,DM需要修改上游的mydql的从库ip,按照文档中要求,enable_gtid必须是打开的,但之前部署DM集群的时候没有打开这个开关。假如现在重新打开,不修改上游mysql ip的情况下,会对现有的同步任务有影响吗?

您好 建议您在不影响业务的情况下进行如下操作
停止相关 相关 task
在 dm_meta 相关表中记录相关的 binglog 位点 以备失败回滚所用
通过 记录binlog 位点 找到稍靠前一点的 gtid 位点 .
(dm-worker 再次启动会以 safe-mode 形势 同步一段时间,此期间同步保证数据的最终一致性.)
在dm_worker 配置文件中 开启 gtid 并配置 relay-binlog-gtid
可参考dm-worker 配置项说明
重启 dm-worker 服务 .
待dm 同步追上 master 后 可对关键表进行 数据库差异比较

通过 记录binlog 位点 找到稍靠前一点的 gtid 位点 ,这个gtid具体是如何来获取的?

获取 binglog 靠前 GTID
1.停止对应的 task
2.从 TiDB 的 dm_meta 数据库内的 _syncer_checkpoint 表中找到 对应 binlogname 和 postion 位点
3.利用 mysqlbinlog 工具 从上游 MySQL 的对应 binlog 中找到对应的位点,依次为基点向前找到 较小的 GTID
4.修改 task 并填入找到的 gtid
5.启动 task 并观察 一段时间同步是否正常(建议 观察10 分钟以上)