如何正确配置GC

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】

我设置GC的方式是错误的嘛,看到有大佬直接修改mysql.tidb这个表也可以?
我到底该如何配置?

还有,为什么上面这个写法会报错呢?

【资源配置】
【附件:截图/日志/监控】

 set global tidb_gc_life_time='72h';

加引号哈。
update表也可以的

image

刚测试了,不行哦。


[root@[03:10:16]> show variables like '%gc_life%';
+-------------------+--------+
| Variable_name     | Value  |
+-------------------+--------+
| tidb_gc_life_time | 3h0m0s |
+-------------------+--------+
1 row in set (0.01 sec)

[root@[03:10:45]> set global tidb_gc_life_time=24h;
Query OK, 0 rows affected (0.03 sec)

[root@[03:10:50]> show variables like '%gc_life%';
+-------------------+---------+
| Variable_name     | Value   |
+-------------------+---------+
| tidb_gc_life_time | 24h0m0s |
+-------------------+---------+
1 row in set (0.01 sec)

v7.1 加不加引号都可以。

我试了6.1.1 也可以。你是用root登录的吗?


MySQL [(none)]> select version();
+--------------------+
| version()          |
+--------------------+
| 5.7.25-TiDB-v6.1.1 |
+--------------------+
1 row in set (0.00 sec)

MySQL [(none)]> show variables like '%gc_life%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| tidb_gc_life_time | 10m0s |
+-------------------+-------+
1 row in set (0.00 sec)

MySQL [(none)]> set global tidb_gc_life_time=1h;
Query OK, 0 rows affected (0.05 sec)

MySQL [(none)]> show variables like '%gc_life%';
+-------------------+--------+
| Variable_name     | Value  |
+-------------------+--------+
| tidb_gc_life_time | 1h0m0s |
+-------------------+--------+
1 row in set (0.00 sec)

不是,我使用了1个拥有ALL权限的普通用户来set global的,不可以嘛?

很奇怪了

直接update 那个表呢?

直接修改表是OK的

mysql> update mysql.tidb set VARIABLE_VALUE='72h' where VARIABLE_NAME='tikv_gc_life_time';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

6.1.0有bug,参考这里

2 个赞

啊?这个BUG很大啊 :joy:

update是可以的,6.1.1之后修复了

居然是个bug,会不会当时版本限制

学习一个bug

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