【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.0
【问题描述】
sql.txt (2.9 KB)
执行上述sql会报错4013 - No memory or reach tenant memory limit
减少多个and后就可以执行了,想问下是什么原因
【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.0
【问题描述】
sql.txt (2.9 KB)
执行上述sql会报错4013 - No memory or reach tenant memory limit
减少多个and后就可以执行了,想问下是什么原因
租户内存写满一般表现为写入失败,报错No memory or reach tenant memory limit 或者 Over tenant memory limits。应急策略的优先级选择一般从高到低分别为
1增加租户内存配置
2调高转储线程数,加快转储,让内存尽快释放。
3…
4…
手机打字太累,你看文档吧
https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001579565
老师,文档中的1我执行sql提示表不存在。
2中的minor_merge_concurrency,在ocp中搜不到。
3和4的配置都调整过了。
我们是ocp4.0,ob4.0版本
2在4.0改为compaction_high_thread_score,调高试试
老师,这个参数官方文档搜索了下,没写具体改多少合适啊,这个改多少合适点那?
这个也是线程数的含义,可以调30试试
好的,试过了,还是不行,同样的4013
先看下select * from GV$OB_MEMSTORE;确认一下内存占用
那再看下SELECT * FROM oceanbase.GV$OB_TENANT_MEMORY;
看上去内存够的,去日志里找下报4013的地方,发一下附近的日志
老师,日志有点多,能说下居然指的是哪个吗?rootservice.log还是observer.log?
加大机器的配置吗?
可是这个sql查询也没那么复杂啊,只是and条件多了点
1002租户给了多少内存?SELECT * FROM oceanbase.GV$OB_UNITS\G
顺便看下select * from oceanbase.GV$OB_MEMORY where tenant_id = 1002;
看起来内存占用很满但是memstore看上去还正常
查询一下select * from GV$OB_KVCACHE where tenant_id = 1002;看看