TiCDC CDC:ErrSnapshotLostByGC报错,gc-ttl配置 172800 ,gc_safe_point 一直再推进

【 TiDB 使用环境`】生产
【 TiDB 版本】v5.4.0
【遇到的问题】
18号凌晨3点遇到消息过大的异常,未及时处理。
14点左右调整参数之后,报错ErrSnapshotLostByGC。无法继续任务。
[CDC:ErrSnapshotLostByGC]fail to create or maintain changefeed due to snapshot loss caused by GC. checkpoint-ts 434656888387272706 is earlier than or equal to GC safepoint at 434667331771695104"

【文档描述】
下游持续异常,TiCDC 多次重试后仍然失败。
该场景下 TiCDC 会保存任务信息,由于 TiCDC 已经在 PD 中设置的 service GC safepoint,在 gc-ttl 的有效期内,同步任务 checkpoint 之后的数据不会被 TiKV GC 清理掉。

gc-ttl: 172800

为什么数据这么快就被GC掉了,是否还有参数进行控制

【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】


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

tidb_gc_life_time 从 v5.0 版本开始引入

  • 作用域:GLOBAL
  • 是否持久化到集群:是
  • 默认值: 10m0s
  • 范围: [10m0s, 8760h0m0s]
  • 这个变量用于指定每次进行垃圾回收 (GC) 时保留数据的时限。变量值为 Go 的 Duration 字符串格式。每次进行 GC 时,将以当前时间减去该变量的值作为 safe point。
1 个赞

还有一些关于gc 的其他参数可以看一下官方文档 链接如下
https://docs.pingcap.com/zh/tidb/stable/system-variables
打开之后搜索gc 就可以啦

中断时间里 过短的tidb_gc_life_time已经把数据清理了,这个导致的

麻烦提供下 PD leader 日志,以便调查该问题。

pd.log.tar.gz (7.4 MB)


调完 tidb_gc_life_time参数 看着是正常了

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。