告警日志或者应用报错后,可以看看相关trc,也许能看到以下:
导致ora-4031的原因:
* SGA 太小
select pool,round(sum(bytes)/(1024*1024),2) size_mb from V$SGASTAT group by pool order by 1;
* 内存自动调优问题
* 应用设计导致的碎片(比如没使用绑定变量)
* BUG或内存泄漏
先来个脚本压压惊
srdc_db_ora4031sp.sql
ORA-04031 如果想深入看看到底什么原因导致
-
--设置事件
-
sqlplus /nolog
-
connect / as sysdba
-
alter system set events '10235 level 65536';
-
exit
-
-
Then wait a while for the ORA-4031 (or at least the memory allocations) to occur, and then execute:
-
sqlplus /nolog
-
connect / as sysdba
-
oradebug setmypid
-
oradebug unlimit
-
oradebug dump heapdump 536870914
-
oradebug tracefile_name
-
oradebug close_trace
-
-
执行完后关闭事件
-
alter system set events '10235 off';
在转储的trc文件中搜
Heapdump shows 看是什么函数导致
有这一堆脚本应该够用了
Scripts.zip。
参考:
ORA-4031 错误故障排除与诊断[视频] (Doc ID 2016002.1)
阅读(694) | 评论(0) | 转发(0) |