TiCDC抽取数据至Kafka出现重复消息的问题

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】v4.0.9

【问题描述】

背景:我们这边有一张分区表,每日数据量insert+update大概1亿次以上,然后我们用ticdc抽取变更记录到kafka的一个topic上,分区是4.

问题:运行几个月后,最近发现kafka中有重复消息,而且重复数量也是4;我通过命令认真比对过每条消息,是一模一样的。因为当初建立任务后并没有发现有重复消息的问题,所以,我就当即就重启了下ticdc,现在发现没有重复消息了,。

另外对这张表进行过的特别处理就是truncate过分区;

很遗憾,我没能保护好问题现场,我就是想问下v4.0.9版本是否有这个问题?谢谢


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

印象中是没有的,请问关于重复数据还有其他相关信息吗?是只有一条重复数据,数量是4?还是多条重复数据呢

另外还想确认下一共部署了几个 cdc,能否确认重复数据的插入的时间段,以及那段时间 ticdc 的日志我们分析下

都会重复,而且都是重复4条;总共5个ticdc;
我是在5月26日19:30左右重启的ticdc,我选了前后两个日志。
cdc-2021-05-26T19-22-04.386.log.gz (3.5 MB)
cdc-2021-05-26T19-35-06.580.log.gz (3.5 MB)

刚看了 log,没看出来问题。 询问几个问题排查一下

  1. 你的 TiCDC 有没有启动多个 changefeed 输出到同一个 topic?
  2. 现在是每条数据都会重复 4 次吗?

1.没有;
2.是的;

@yangfei 你能帮忙确认一下是什么问题吗?

  • 每条消息都重复 4 次,比如从监控看有没有流量突然变为 2/3/4 倍么,确定一下发生变更的时间点
  • 可以从日志中搜索 dispatch table success,作为是否有重复分发的诊断信息

1.5月19日左右开始上去的,然后昨晚重启后,就掉下去了;


2.dispatch的日志如下:dispatch_table_success.log (56.0 KB)

从日志看确实有表分发到多个节点,需要更多的日志确认,可以提供出问题时间段的各 cdc 节点日志么。
或者 grep -E “capture.go|server.go|changefeed.go|owner.go”

我搜索了26日的日志,5个ticdc实例,只有3个有对应的日志记录,分别如下
log.instance.1.gz (71.0 KB)
log.instance.5.gz (595 字节)

另一个比较大,百度云盘:

提取码:5guj

26 日应该是重启后的日志,定位问题需要 5 月 19 日,5 月22 日这两个发生变化时间点的 cdc 日志,能麻烦再提供一下么

5月19日的日志删除了。
现在发现另一个问题,我重启后,消息无重复;
但是现在发现:
(1)重启后的任务checkpoint已经停留在5月26日了
(2)总共有3个任务,其中1个今天报了 CDC:ErrBufferReachLimit,sort-engine用的unified,另两个任务目前数据正常出来,但是如1所述,checkpoint不再变化
专家需要什么帮助查,我可以提供

重复消息的问题没有日志可以提供了吗?

另外你说的第二个问题,是否方便升级到 4.0.13,4.0.13 中 TiCDC 的问题。

嗯,没了。
我这边近期安排4.0.13版本;

好的。如有其他问题,辛苦另开新帖