ERROR 1105 (HY000): Out Of Memory Quota![conn_id=7]

【概述】 场景 + 问题概述
集群配置如下:

【背景】 做过哪些操作

表结构一致,表名不同;

插入数据量 : 119305043 行

插入语句: insert into xxx (xx,xx,xx) select xx,xx,xx from aaa;

新表中插入 数据,报错 :ERROR 1105 (HY000): Out Of Memory Quota![conn_id=7]

【问题】

官方文档
https://docs.pingcap.com/zh/tidb/v4.0/configure-memory-usage

参数添加如下 :

但在 添加参数 时,发生报错:

问题一 : 想问一下 ,参数是不是在全局下 或者 是不是格式问题;

问题二 : 想问一下 , 参数 mem-quota-query 默认多大?若是修改,在我目前的配置下(64 GB)配置多少合适 ? 有没有参考比例,后期计划 应用在生产上;

这种大批量插入数据的情况,建议分批插入,一次不超过5万条记录。
mem-quota-query 一般10g就够了

1 个赞

你好 ,问一下, 这参数 默认是多大, 我这处理的历史表会比较多少,所以测试了单表 insert ;而且我也配置了 10G 但在应用过程报错 … 想问问是不是格式上问题 :joy::joy::joy::joy::joy::joy:

1 个赞

应该不是格式上的问题,主要是内存方面的问题。目前限制的是单个事务最大使用多少内存,5.4以前的版本设置的比较小,可以更改到10g,我的经验中,10g一般是够用的,在5.4版本中好像默认就是10g了。如果改完了还是出现oom,可以从其他问题入手,比如慢sql多了,或者事务多了导致tidb占用内存太大,就会oom。具体情况具体分析。

目前集群环境还是测试。。 所以 这次也是 一张表 单独 insert 到 新表测试;

官方文档 我好像没看到默认是 10G ,你是在那边看到的呀 ?

参考一下这位大佬的文章,参数很全:大事务的处理方式对比

show variables like '%tidb_mem_quota_query%';看下,mem-quota-query是tidb_mem_quota_query的初始值,我看了下我的测试环境5.4版本,默认1G

楼上啦啦啦的回复写的呀,截图里面的数值就是1g,10737418240表示10g

你好 ,参数 是被配置在那个模块 ? 全局 ? 可否帮忙看看 是不是写错格式啥的? 主要是 配置参数 reload 集群发生报错了

image
我这么配置是成功的,reload也没报错

1 个赞

是-不是_,你仔细看看

mem-quota-query
2 个赞

:+1:眼神真好,不说我都没发现

1 个赞

多谢多谢 !!启动起来了 :joy::joy::joy::joy::joy:
干活没仔细 。。。手上干着其他事情,三心二意了 :joy::joy::joy::joy:

1 个赞

我们今天DM迁移数据的时候也报这个OOM了,而且我们的版本是5.4.0的,看了一下默认mem-quota-query配置就是1G的,直接修改不行:
set config tidb mem-quota-query=‘2147483648’

1105 - TiDB doesn’t support to change configs online, please use SQL variables
请问,DM配置文件有配置这个参数的地方吗?
另外,用tiup config修改的话需要reload,对于线上环境来说不现实,可有其他办法?

mem-quota-query 使用tiup配置后不生效 - TiDB / 性能调优 - TiDB 的问答社区 (asktug.com) 参考一下