日期:2014-05-16  浏览次数:20484 次

记一次ora-4031 处理过程小结

诊断小节

 

从今天1111:43开始在alert.log中出现以下错误信息

ORA-00604: error occurred at recursive SQLlevel 2

ORA-04031: unable to allocate 1320 bytes ofshared memory ("shared pool","selecti.obj#,i.ts#,i.file#,...","sql area","kafco : qkacol")

…………..

 

`错误分析

当我们在共享池中试图分配大片的连续内存失败的时候,Oracle首先刷新池中当前没使用的所有对象,使空闲内存块合并。如果仍然没有足够大单个的大块内存满足请求,就会产生ORA-04031 错误。换句话说就是:ORA-04031错误通常是因为库高速缓冲中或共享池保留空间中的碎片引起的。

 

解决方法:

alter system flush shared_pool

 

建议:

以上解决方法不能从根本上解决问题,

建议一:在下次问题再次发生时立即通知我们,立即登入数据库进行检查,诊断,以确定问题的根本原因。

建议二:设置statspack,每隔一段时间收集数据库的信息。