【概述】 场景 + 问题概述
集群配置如下:
【背景】 做过哪些操作
表结构一致,表名不同;
插入数据量 : 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 个赞
应该不是格式上的问题,主要是内存方面的问题。目前限制的是单个事务最大使用多少内存,5.4以前的版本设置的比较小,可以更改到10g,我的经验中,10g一般是够用的,在5.4版本中好像默认就是10g了。如果改完了还是出现oom,可以从其他问题入手,比如慢sql多了,或者事务多了导致tidb占用内存太大,就会oom。具体情况具体分析。
目前集群环境还是测试。。 所以 这次也是 一张表 单独 insert 到 新表测试;
官方文档 我好像没看到默认是 10G ,你是在那边看到的呀 ?
数据小黑
(数据小黑)
7
参考一下这位大佬的文章,参数很全:大事务的处理方式对比
啦啦啦啦啦
8
show variables like '%tidb_mem_quota_query%';
看下,mem-quota-query是tidb_mem_quota_query的初始值,我看了下我的测试环境5.4版本,默认1G
楼上啦啦啦的回复写的呀,截图里面的数值就是1g,10737418240表示10g
你好 ,参数 是被配置在那个模块 ? 全局 ? 可否帮忙看看 是不是写错格式啥的? 主要是 配置参数 reload 集群发生报错了
Johnpan
(Johnpan)
15
我们今天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,对于线上环境来说不现实,可有其他办法?