【 TiDB 使用环境】Poc
【 TiDB 版本】6.5.4
【遇到的问题:问题现象及影响】
tikv client java 去获取tikv的cdc事件时,当获取历史时间时每次拿到的值都不完全一致,存在部分数据丢失。怀疑是给gc掉了,那么能如何设置gc时间呢?
cdc 的 TSO 会往前移动的,不会停留在某个地方…
如果没调用过,compact ,数据版本不会被回收掉的,除非你有安装 tidb 节点…才有可能触发 GC
参考文档
https://docs.pingcap.com/zh/tidb/stable/garbage-collection-configuration#gc-配置
你可以通过以下系统变量进行 GC 配置:
-
tidb_gc_enable
:控制是否启用 TiKV 的垃圾回收 (GC) 机制。 -
tidb_gc_run_interval
:指定垃圾回收 (GC) 运行的时间间隔。 -
tidb_gc_life_time
:指定每次进行垃圾回收 (GC) 时保留数据的时限。 -
tidb_gc_concurrency
:指定 GC 在 Resolve Locks(清理锁)步骤中线程的数量。 -
tidb_gc_scan_lock_mode
:指定垃圾回收 (GC) 的 Resolve Locks(清理锁)步骤中扫描锁的方式。 -
tidb_gc_max_wait_time
:指定活跃事务阻碍 GC safe point 推进的最大时间。
tikv client java可以控制gc时间,但是需要通过修改TiDB的配置来实现。具体的步骤如下:
- 使用以下命令更新mysql.tidb表中的tikv_gc_life_time变量,将其设置为您想要的值(例如30分钟):
update mysql.tidb set variable_value ='30m' where variable_name ='tikv_gc_life_time' ;
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。