温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Oracle日常问题处理ORA-04031

发布时间:2020-08-11 14:54:38 来源:ITPUB博客 阅读:210 作者:chenoracle 栏目:关系型数据库

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 内存自动管理出了问题。

Oracle日常问题处理ORA-04031

解决方案:

从根本上解决:

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)

Oracle日常问题处理ORA-04031

诊断并解决 ORA-4030 错误 (Doc ID 1548826.1)

Oracle日常问题处理ORA-04031

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

Oracle日常问题处理ORA-04031

Oracle日常问题处理ORA-04031

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI