使用binlog无法进行tidb到mysql的数据同步

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

  • 【TiDB 版本】:tidb_version = v3.0.12
  • 【问题描述】:使用binlog进行tidb到mysql的数据同步,已完成了pumb和drainer的安装和部署,启动成功,但是发现mysql数据库中的数据没有与源头tidb库保持一致,请问一下这个问题如何处理?
    查看drainer的状态如下图:

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

  1. 查看 pump 和 drainer 的状态
show pump status;
show drainer status;
  1. 怎么不一致? 上游写入数据,下游不同步吗?

  2. 上传 pump 和 drainer log 日志

  3. 你在命令行修改 drainer 状态吗? 没有 online-drainer

drainer.rar (2.2 MB)


1.图片是pump和drainer的status,
2.压缩包是log文件,
3.上游tidb写入数据,下游mysql一直不同步。。
请帮忙看下问题原因,谢谢

你好

思路:

pump 状态 online,drainer paused,首先检查 drainer.log 是否正常,通过检查发现,日志中存在 table 51saas_003.inf_jsp_busi: table not exist 报错,所以是不是需要检查下这个表是否存在呢。

结合 tidb-binlog 的基础架构知识,tidb-binlog 会增量同步并消费当前集群产生的 binlog,对存量数据是没有处理的。所以可以在 tidb-binlog faq 中找到问题的解决办法。
https://pingcap.com/docs-cn/stable/tidb-binlog/tidb-binlog-faq/

我已经把源头的51saas_003库删除了,你说的对增量数据没有处理?是指我的同步配置有问题?请指导一下

更正下,是对存量数据没有处理,具体看文档吧,很明确。

明白,对存量数据不会处理。但是现在增量数据也没有进行同步。不知道错误出现在哪里

报错信息可以看到吧,建议按照文档将存量数据补全再重新使用 tidb-binlog 同步,因为我要将 1 变更为 2 ,1 都没有,肯定会报错。。。

谢谢。我重新清理一下思路再测试,多谢你的指导。

:slightly_smiling_face:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。