本文转自公众号:忙碌了两个小时的陈师傅
|
|
|
|
|
|
|
|
|
|
No memory or reach tenant memory limit.*[OOPS]=,错误码=4013,[T0] [lt=0][errcode=-4013] No memory or reach tenant memory limit([OOPS]=“alloc failed reason”, msg=tenant memory has reached the upper limit(tenant_id: 1021, tenant_hold: 1284046848, tenant_limit: 1285370675, alloc_size: 2097152))
SELECT T.TENANT_ID,T.SVR_IP,T.CTX_NAME,SUM(T.HOLD)/1024/1024/1024,SUM(T.USED)/1024/1024/1024FROM OCEANBASE.GV$OB_MEMORY TWHERE T.TENANT_ID = 1AND T.SVR_IP = '1.0.0.1'GROUP BY T.TENANT_ID,T.SVR_IP,T.CTX_NAME;
ALTER SYSTEM FLUSH KVCACHE TENANT = sys;ALTER SYSTEM FLUSH PLAN CACHE TENANT = sys;
sock has error ;write response fail;failed rto flush_buffer ;response rpc result fail ;
4. 查看论坛SYS租户不可用的相关报错信息,发现问题的可能原因
问题描述:当业务租户异常时,在系统(sys)租户下执行视图查询操作可能因超时而失败。这是因为视图的部分数据物理存储在业务租户中,当业务租户不可用时,相关数据无法正常获取,导致查询过程超时。
问题影响:OCP(OceanBase Control Platform)在同步租户信息时,通常通过系统租户查询业务租户信息。当这种查询因业务租户问题而超时后,OCP会误判系统租户本身已发生故障,从而错误地将系统租户标记为不可用状态。
问题解决:升级OCP 至4.4.0 可以解决大部分类似问题。后续OB会和OCP 配合整改全面解决本问题。
思考:在OCP中 SYS 租户的状态为不可用,所以无法在OCP中修改租户资源配置和参数。业务租户内存不足,导致查询和维护的SQL均不能正常执行,合并和转储可能也延时了,集群中有很多其他租户正常运行,又不能重启机器和集群,停了又担心无法启动,应该如何在线调整解决这个问题呢?
解决方法:
1. 使用obclient 登录到sys租户,通过3个视图来查看资源单元信息
DBA_OB_UNITS (TENANT_ID)DBA_OB_RESOURCE_POOLS (TENANT_ID)DBA_OB_UNIT_CONFIGS (DBA_OB_UNITS.UNIT_CONFIG_ID) 获取 UNIT NAME
2. 直接修改业务租户资源单元的大小,注意3个zone都要修改
ALTER RESOURCE UNIT (上面查询的UNIT NAME) MEMORY_ZISE '32G';ALTER RESOURCE UNIT (上面查询的UNIT NAME) MEMORY_ZISE '32G';ALTER RESOURCE UNIT (上面查询的UNIT NAME) MEMORY_ZISE '32G';
修改之后,在OCP中查看该租户的配置,配置已经更新,一些常用的维护操作已恢复。等2分钟刷新SYS租户的状态,发现SYS租户状态已正常。
注意:通过后台修改的资源单元配置,只修改了内存,其他的配置均未修改,如日志盘大小,需要通过OCP再次修改该业务租户的资源配置为8C64G ,租户规格相关的配置会一同修改。租户的状态恢复后,如果有租户长时间未冻结的告警,要先做一下业务租户的合并。
想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

17认证网








