ticdc同步异常报[CDC:ErrTableListenReplicated]A table(13030) is being replicated by at least two processors

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
tidb v5.1.2
ticdc v5.1.2
【概述】 场景 + 问题概述
主库 执行 alter table tbl_new_userinfo add key (regdate) , 从库 执行这个指令 可能一直没有正常返回 。 实际在下游 多次执行 造成 regdate regdate_2 … regdate_21 等大量索引。
【备份和数据迁移策略逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象
“code”: “CDC:ErrTableListenReplicated”,
“message”: “[CDC:ErrTableListenReplicated]A table(13030) is being replicated by at least two processors(f2c7fb00-f392-44f6-ab10-4a67a0cfc3aa, f538fd36-5b45-40d6-894b-f63a53a4beb3), please report a bug”

【问题】 当前遇到的问题
主库 执行 alter table tbl_new_userinfo add key (regdate) , 从库 执行这个指令 可能一直没有正常返回 。 实际在下游 多次执行 造成 regdate regdate_2 … regdate_21 等大量索引。
【业务影响】

【TiDB 版本】
5.1.2
【附件】

  • 相关日志、配置文件、Grafana 监控(https://metricstool.pingcap.com/)
  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息
  • TiDB-Overview 监控
  • 对应模块的 Grafana 监控(如有 BR、TiDB-binlog、TiCDC 等)
  • 对应模块日志(包含问题前后 1 小时日志)

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

2 个赞

麻烦确认一下 TiCDC 当前的 changefeed 是否存在两个 task 任务做相同的任务的情况,日志报错是 f2c7fb00-f392-44f6-ab10-4a67a0cfc3aa, f538fd36-5b45-40d6-894b-f63a53a4beb3 这两个 changefeed task 出现的问题。

2 个赞

这两个task 跑了很长时间了没有问题呀
[root@yz-mbg-017012 cdc]# cdc cli changefeed list --pd=http://xx.xx.17.212:2479
[
{
“id”: “cbd-user-behavior-analysis-task”,
“summary”: {
“state”: “normal”,
“tso”: 428689539846373444,
“checkpoint”: “2021-10-27 15:46:55.454”,
“error”: null
}
},
{
“id”: “cbd-user-behavior-analysis-task-ht”,
“summary”: {
“state”: “normal”,
“tso”: 428689539846373444,
“checkpoint”: “2021-10-27 15:46:55.454”,
“error”: null
}
}
]

2 个赞

主库 执行 alter table tbl_new_userinfo add key (regdate) , 从库 执行这个指令 可能一直没有正常返回 。 实际在下游 多次执行 造成 regdate regdate_2 … regdate_21 等大量索引。
跟这个 加索引有关联 。
| JOB_ID | DB_NAME | TABLE_NAME | JOB_TYPE | SCHEMA_STATE | SCHEMA_ID | TABLE_ID | ROW_COUNT | START_TIME | END_TIME | STATE |
±-------±---------------------------±----------------------------±------------------------------±-------------±----------±---------±----------±--------------------±--------------------±-------+
| 28796 | cbd_user_behavior_analysis | tbl_new_userinfo | add index | public | 2135 | 5455 | 4898821 | 2021-10-27 15:45:25 | 2021-10-27 15:46:55 | synced |

2 个赞

从库出现多次加索引的情况 。

2 个赞

我把 这个表通过停掉了 ,跳过一段时间 之后再加回去正常了 。
现在ticdc 没有owner 全部都是 worker
image
重启了原来的owner 17.58 现在 owner选到 17.217 。

2 个赞

请问现在问题解决了吗 ?

2 个赞

修改task任务 临时跳过这个表了, 之后补了一部分数据 ,否则的话 这么长时间 ticdc 依赖的GC早就过期了 ,之前的同步环境就完全破坏了, 重建两套下游集群数据 就要老命了。

1 个赞

想确认下,这两个 change feed 的创建配置或者是创建命令还存在么?是否两个 changefeed 中存在同一个表?

1 个赞

话又说回来,两个changefeed,都还有某个相同库表,会怎样?

1 个赞

两个changefeed 对应 两个不同的下游tidb , 同步的都是相同的库表 , 一直都正常的呀 ,就是上次创建索引的时候 没有加 索引名称 。出现这个bug 应该是
主库 执行 alter table tbl_new_userinfo add key (regdate) , 从库 执行这个指令 可能一直没有正常返回 。 实际在下游 多次执行 造成 regdate regdate_2 … regdate_21 等大量索引。

1 个赞

你这里的上游是只mysql还是tidb? 如果是tidb,执行这个语句alter table tbl_new_userinfo add key (regdate) 实际上创建了N多索引?

1 个赞

应该是这个问题 cdc add multiple duplicated index when add an index without specifying a name in upstream · Issue #2543 · pingcap/tiflow · GitHub

1 个赞

还有不写索引名字的?!
论操作规范的重要性,主键名字一定要PK前缀,唯一键名字要UK前缀,普通的(联合)索引名也要写上去。

上游是tidb 执行 没有问题只建了一个正确的索引 。 当时就是想测试一下 不加索引名称有没有问题 , 我看主库执行正常 ,就没cancel 。 没想到下游两个都执行异常 ,重复建了大量的索引 。

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