tidb_mem_quota_query值设置过小导致tidb无法启动?

【 TiDB 使用环境】
测试

【 TiDB 版本】
6.1

【遇到的问题】
调整tidb_mem_quota_query后tidb无法启动

【复现路径】
设置 set tidb_mem_quota_query = 1024(最好别试),重启tidb

【问题现象及影响】
tidb无法启动,日志中出现[expensivequery.go:110] [“expensive_query during bootstrap phase”],[cache.go:324] [“load mysql.user fail”] [error=“Out Of Memory Quota![conn_id=0]”],[terror.go:292] [“unexpected error”] [error=“[privilege:8049]mysql.user”]

tidb.log (544.5 KB)

限制可使用内存为1024字节是认真的么?值太小了

当时只是想看下oom时候的行为。。然后就起不来了,想问下这个参数在tidb起不来的时候能直接调么

6.1版本开始,这个参数变成变量了,不启动tidb,好像修改不了。

所以这种情况就是跪了是么orz

oom-action设为log,然后重启试下。。

反正tidb也是无状态的,扩缩容重设是否可以解决?

6.1版本里,这个转换成系统变量了,也要启动之后才能设置。

这个是持久化了的,扩容tidb也不行。

总得有参数所在的配置吧?

主要就是想问这个,持久化了的系统变量它是以什么形式落到本地的,有没有直接改的可能

:rofl:有个小伙伴实现了如何启动。
1、自己获取源码编译tidb-server,
2、把oomAction相关的panic代码去掉,替换原来节点(任意一个节点)
3、重启集群后修改系统变量
4、关闭节点,然后替换原来二进制包,然后启动

如果不是生产环境,可以摧毁重建,只是数据没有了。

对,就是说配置文件之类的,如果没有就不太合理了,这种误设置难以避免

可行,已启动成功

1 Like

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