drainer经常性挂掉,不能自动恢复

现象:集群中drainer组件经常性down掉,且难以重启恢复。
排查:error日志附近出现“receive big size binlog”的字样,binlog的大小在100MB+,在论坛中看到相似的问题,参见《
上游sql通过drainer同步到kafka时在kafka中是什么样子的 - qhd2004 的专栏 - 专栏 - 上游sql通过drainer同步到kafka时在kafka中是什么样子的 | TiDB 社区
》中的结论3。

其他:drainer和pump为默认配置。
咨询:处理此类问题的策略或建议?能够统一的解决这个问题,或者能够使得drainer不会经常性异常退出。

可以看下是否是内存溢出?

drainer的内存么?

查下机器的log 是否有oom

机器的系统日志中没有OOM的信息

  1. warn code 位置,这是一个 warn 说明单条 binlog entry 太大了,是不是存在大事务,这个报错不能直接锁定 crash 的原因
  2. 看版本是 v6.1.0,不要用 tidb-binlog 了,直接用 TiCDC 吧,binlog 官方已经放弃维护了。
  3. 如果还要继续追查根因的话,建议传一份 clinic,这样 日志 监控就都能看了。
  4. 关于 TiDB-Binlog 的建议 → 官方文档读一遍,然后看看常见 FAQ 基本就 OK 了,Binlog 已经很老了。

tidb 的binlog 在5.4.0 版本及下面的版本有1个bug,就是在经历1个大事务后,drainer 进程的内存就经常升高,你可以看下是不是有这种现象
https://github.com/pingcap/tidb-binlog/issues/1087

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