更新表数据时报错:4030 -Over tenant memory limits

【使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】oceanbase-ce-4.3.5.1
【问题描述】
更新表数据时报错:4030 -Over tenant memory limits, 如何检查内存是否 不够呢?有没有方式可以快速巡检内存不够的情况?
下面这个时资源使用情况:

4 个赞

查一下租户的MemTable使用情况
select * from GV$OB_MEMSTORE;

1 个赞


这里看着是差不多 90%,是达到90%就会报这个错了吧

2 个赞

SELECT tenant_id,svr_ip,sum(hold) module_sum
FROM __all_virtual_memory_info
WHERE tenant_id>1000 AND hold<>0 AND mod_name NOT IN ( ‘OB_KVSTORE_CACHE’,‘OB_MEMSTORE’)
GROUP BY tenant_id,svr_ip;

1 个赞

环境删掉了,重现了下,现在报错这个:1013:No memory or reach tenant memory limit



怎么看呢,哪里可以看出内存不够了?

1 个赞

学习了

1 个赞

建议发一下 昨天报错的时间节点的observer.log日志 查一下这个信息
select * from gv$ob_memory order by used desc limit 20;

1 个赞

通过数据库性能视图

1 个赞

这点内存报这种错误是意料之中的,OB本身就是一个准内存数据库。

1 个赞

使用这个语句查询一下

memstore内存不够用,思路如下
1、分批执行update,调小事务量
2、调小转储阈值,调大转储线程,加速转储,转储触发合并阈值调大,防止意外合并
3、调大租户内存

参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003976911

1 个赞