学无先后,达者为师

网站首页 编程语言 正文

Oracle数据库报ORA-4031的应急处理办法

作者:GottdesKrieges 更新时间: 2022-07-02 编程语言

Oracle数据库收到类似以下ORA-4031共享内存无法分配告警时

DATABASE:"ORA-04031: unable to allocate 2456 bytes of shared memory ..."

一般有两种应急处置办法:一是flush共享池,二是重启数据库。

Flush共享池的方法如下。

查看当前共享池中的可用内存(free momory):

select bb.* from (select pool,name,sum(bytes)/1024/1024 size_mb
from v$sgastat where pool='shared pool'
group by pool,name order by sum(bytes)/1024/1024 desc) bb
where rownum < 21 order by size_mb;

在RAC俩节点flush共享池:

alter system flush shared_pool;

然后查看free memory对比之前是否增加。

Flush共享池后缓存的执行计划被清理,短时间内SQL解析的时间会增加,并且能够释放的内存有限,有条件的话最好还是重启数据库。

原文链接:https://blog.csdn.net/Sebastien23/article/details/125226355

栏目分类
最近更新