ORA-04031错误的处理

4031我两年遇到了不下5次,现在总结下下

4031错误是SHARED_POOL很容易产生的错误,对于SHARED_POOL的原因一般有3类:
  BUG
  SHARED_POOL太小
  SHARED_POOL有太多的碎片
对于LARGE POOL,JAVA POOL,一般是由于设置的太小导致到

BUG可以从Doc ID:  396940.1 中查询
SHARED_POOL太小,可以通过监控v$sgastat查看free memory是否过少,或者在04031发生后生成的DUMP中也可以查看到
SHARED_POOL有太多的碎片,这个可以通过x$ksmsp来分析,或者是04031发生后的DUMP

如何来减少04031错误了
1.10G的SGA自动管理
2.定期flush SHARED_POOL
3.不要设置过高的session_cache_cursor
4.使用绑定变量
5.当没有使用绑定变量而且cursor_sharing=similar时,一定不要收集直方图
6.加大SHARED_POOL_RESERVED_MIN_ALLOC的空间,保留空间也可能发生04031,具体诊断是监控v$shared_pool_reserved
7.把一些大的对象PIN到SHARED_POOL中

对于碎片造成的04031,一般的原因是没有使用绑定变量的SQL和大量的硬解析
查找的方法一般有
  v$sqlarea中基本相同的SQL
  v$sqlarea中version_count异常高的SQL
  通过v$open_cursor和v$sqlarea查询当前占用内存高的SESSION,在获得该SESSION的SQL分析(还方法不适合于存在version_count异常高的情况)
  DUMP library_cache 来分析SQL硬解析的SQL

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8242091/viewspace-586914/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8242091/viewspace-586914/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值