TiCDC同步自己有个任务无法删除,但是一直报错。

【 TiDB 使用环境】
TiDB v5.1.0

【概述】 场景 + 问题概述
用TiCDC同步到下游数据库的时候,任务创建成功,但是同步不了增量数据,并且也没有任何报错。
TICDC自己有一个任务Task1,无法删除,删除后过一下自己又恢复了,感觉像是系统任务。

任务情况:

同步配置文件:


【备份和数据迁移策略逻辑】

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题

  1. 这个task1 报错如何解决
  2. 另外两个同步任务如何修改
    【业务影响】

【TiDB 版本】

【附件】

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

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

1 个赞

重装集群后解决问题

报错的日志还有吗?

重装集群不是一个好的解决方案,可以具体描述反馈一下,是重装了下游集 ?TiCDC 有做过哪些调整么 ?

主要销毁了之前集群,重装了整个集群解决问题。
分析后就是之前的task1报错卡主了TiCDC的流程。
原本有一个task1的同步任务,同步到一个下游mysql,上游TiDB中有十几个库,然后操作的时候将TiDB中的库都删除了,当时没有管TiCDC任务,删除后,重新载入了另一份数据,想要同步到另外的MySQL,新建了TiCDC同步任务,这个时候才发现前面有个task1一直报错,然后后面建的同步任务不报错也不会同步。

已经没了

好吧,如果有再遇见,麻烦保留一下哈 :pray:

大佬,现在新创建的两个任务都报了同样的错误:
“message”: “[CDC:ErrGCTTLExceeded]the checkpoint-ts(426586986918969345) lag of the changefeed(e6cef5f3-ec0b-4631-ac5a-bab926db121c) %!d(MISSING) has exceeded the GC TTL”

这个是查询信息:
CDC.txt (14.8 KB)

changefeed 删不了已经记录 issue 将在 5.1.2 中修复 changefeed can't be removed when meeting ErrGCTTLExceeded error · Issue #2391 · pingcap/tiflow · GitHub

[CDC:ErrGCTTLExceeded]the checkpoint-ts(426586986918969345) lag of the changefeed(e6cef5f3-ec0b-4631-ac5a-bab926db121c) %!d(MISSING) has exceeded the GC TTL

创建 changefeed 后发生这个错误说明 该 changefeed 的 --start-ts 已经小于上游集群的 GC safepoint,也就说部分历史数据已经被 GC 清理了,无法同步。

在创建 changefeed 前需要确保 --start-ts 的值需要大于 TiDB 集群当前的 mysql.tidb 表中的 tikv_gc_safe_point ^1

1: 可以用 pd-ctl tso 来获得 ts 对应的物理时间。

我的这个任务一开始是成功的,并且能正常进行,过了一段时间后就报这个错了。
原因是不是因为长期没有同步任务,导致上游的safepoint 已经GC了,而下游没有更新,下次再同步的时候导致报错?
那这个上游GC的时间是TiDB的GC时间,也就是默认的10分钟?

Hello ~ 目前遇到一个 bug ,这个 PR 修复 https://github.com/pingcap/ticdc/pull/2429。 计划下一个版本修复,可以等一下 v5.1.2 版本。

那现在遇到的这个删除不了的问题,要怎么解决呢?还是得重新部署嘛?
我上次是单独扩缩容重新部署了一个TiCDC节点,解决不了这个任务无法删除的bug,最后是重新部署整个TiDB集群解决的。

有没有更好的解决办法?
每次重新部署整个TiDB集群,又重新导入数据,这个流程还是太恐怖了啊。

只能重置 TiCDC 集群,可以通过一下操作。

  1. 关闭所有 cdc 节点
  2. cdc cli unsafe reset
  3. 创建新的同步任务,注意 start-ts 不要小于 tidb 的 tikv_gc_safe_point

关闭cdc节点是 stop掉这个单独的cdc节点嘛?
然后我是用tiup ctl:v5.1.0 cdc unsafe reset重置
就可以再重新创建任务了,对吧?

其实就是重置所有的 TiCDC 任务了,任务也被删除了。

调了TiDB的GC时间为24小时,现在任务重启一段时间后又报这个错误,是什么原因?

分析了一下日志,感觉可能是中间某些任务卡住了导致的:
发现以下报错:
[2021/08/03 12:42:36.230 +08:00] [INFO] [client.go:868] [“start new request”] [request="{“header”:{“cluster_id”:6989173376567217280,“ticdc_version”:“5.1.0”},“region_id”:3169,“region_epoch”:{“conf_ver”:5,“version”:363},“checkpoint_ts”:426761119753830400,“start_key”:“dIAAAAAAAAP/kV9yAAAAAAD6”,“end_key”:“dIAAAAAAAAP/kV9zAAAAAAD6”,“request_id”:62711,“extra_op”:1,“Request”:null}"] [addr=188.8.13.73:20162]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:206] [“single region event feed disconnected”] [regionID=1565] [requestID=62661] [span="[7480000000000001ff5d5f720000000000fa, 7480000000000001ff5d5f730000000000fa)"] [checkpoint=426761119753830400] [error="[CDC:ErrEventFeedEventError]region_not_found:<region_id:1565 > “]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:222] [“EventFeed retry rate limited”] [delay=4.081762009s] [regionID=1565]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:206] [“single region event feed disconnected”] [regionID=1565] [requestID=62667] [span=”[7480000000000001ffb35f720000000000fa, 7480000000000001ffb35f730000000000fa)"] [checkpoint=426761122532818944] [error="[CDC:ErrEventFeedEventError]region_not_found:<region_id:1565 > “]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:222] [“EventFeed retry rate limited”] [delay=4.181637919s] [regionID=1565]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:206] [“single region event feed disconnected”] [regionID=1565] [requestID=62706] [span=”[7480000000000001ffbd5f720000000000fa, 7480000000000001ffbd5f730000000000fa)"] [checkpoint=426761119753830400] [error="[CDC:ErrEventFeedEventError]region_not_found:<region_id:1565 > “]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:222] [“EventFeed retry rate limited”] [delay=4.281513989s] [regionID=1565]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:206] [“single region event feed disconnected”] [regionID=1565] [requestID=62690] [span=”[7480000000000001ff675f720000000000fa, 7480000000000001ff675f730000000000fa)"] [checkpoint=426761119753830400] [error="[CDC:ErrEventFeedEventError]region_not_found:<region_id:1565 > “]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:222] [“EventFeed retry rate limited”] [delay=4.381492599s] [regionID=1565]
[2021/08/03 12:42:36.232 +08:00] [INFO] [region_worker.go:206] [“single region event feed disconnected”] [regionID=1565] [requestID=62686] [span=”[7480000000000001ff965f720000000000fa, 7480000000000001ff965f730000000000fa)"] [checkpoint=426761119753830400] [error="[CDC:ErrEventFeedEventError]region_not_found:<region_id:1565 > "]

日志报错 region 3169 不可用了,可以检查一下对应的 region id

我启动一个同步任务的时候,cdc那台机器的内存就暴涨,几乎要把内存吃光,是怎么回事呀?

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