gc 相关问题

在观看视频‘数据丢失快速回复’这一课程的时候发现有两个gc 的参数,一个是tidb端的 一个是tikv 端的,tidb_gc_life_time 和 tikv_gc_life_time ,对于这两个参数不是很理解,


show variables like ‘%gc%’; 里面可以查询到tidb_gc_life_time 这个参数 ,但是tikv_gc_life_time 这个参数是在mysql.tidb 里面查询的

tidb_gc_life_time 从 v5.0 版本开始引入

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

tidb_gc_life_time 是集群的变量 防止误更新表,导致gc 任务报错新加的 。tikv_gc_life_time 是mysql.tidb 里面的字段的key ,两个是一样的,随便更新哪个值都会相互同步

5.0之前是用mysql.tidb表来更新gc-life-time的,5.0之后改成用系统变量的形式了(推荐用法),是一样的意思。

理解了 ,5.0版本之后都是一样的效果了

5.0版本之前如果想调整GC 的话是不是还是再mysql.tidb里面调整?

是的,5.0之前没有那个系统变量

好的 谢谢