Oracle日常问题处理ORA-04031




Oracle日常问题处理
ORA-04031




环境:

DB:Oracle 11.2.0.1.0
OS:Windows Server 2008


问题现象:


数据库经常宕机,重启后没过几天又出现问题。



问题原因:



查看问题期间告警日志可知是由ORA-04031
报错引起数据库不可用:


ORA-04031: unable to allocate 2968 bytes of shared memory (“shared pool”,”insert into smon_scn_time (t…”,”sga heap(2,0)”,”call”)


从对应的trace日志
中可以看到,


KGH: NO ACCESS


类型的内存占用了很大的空间。


如下文档解释了这个问题:


ORA-04031 in 11g & 11gR2, Excess “KGH: NO ACCESS” Memory Allocation ( Doc ID 1127833.1 )



这个类型的内存是当共享池和DB Cache
进行切换时的中间状态的内存,如果切换过于频繁,就会导致这种内存累积,并无法正常利用。



相关的Bug
一般在
11.2.0.2

11.2.0.3,11.2.0.4.0
版本修复;






并且从AWR
报告也可以看到,
Shared Pool Size

Buffer Cache
内存高很多,也能推测出可能是
AMM
内存自动管理出了问题。







解决方案:



从根本上解决:

1
升级到
11.2.0.4
版本


推荐的补充方案:

2

shared_pool_size

db_cache_size
设置一个最小值,减少内存自动切换的可能性



可选方案:

3
设置
alter system set “_memory_broker_stat_interval”=999;


强制规定最少999
秒切换一次。



相关文档:

ORA-04031

ORA-04030
经常容易搞混,可以看下面的文章了解更多关于
ORA-04031

ORA-04030
错误。


ORA-4031 错误故障排除与诊断[视频] (Doc ID 2016002.1)


OERR: ORA-4031 “unable to allocate %s bytes of shared memory (“%s”,”%s”,”%s”)” (Doc ID 4031.1)



诊断并解决 ORA-4030 错误 (Do免费云主机域名c ID 1548826.1)


欢迎关注我的微信公众号”IT小Chen”,共同学习,共同成长!!!

相关推荐: log file switch

log file switch 一: log file switch 说明 二: log file switch 官方文档 一: log file switch 说明 selectevent#,name,wait_class fromv$event_name …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 12/30 15:44
下一篇 12/30 15:47