千家信息网

Oracle日常问题处理ORA-04031

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Oracle日常问题处理 ORA-04031环境:DB:Oracle 11.2.0.1.0OS:Windows Server 2008问题现象:数据库经常宕机,重启后没过几天又出现问题。问题原因:查看
千家信息网最后更新 2026年11月02日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 错误 (Doc ID 1548826.1)

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

问题 内存 切换 方案 错误 数据 数据库 文档 日志 版本 类型 处理 很大 最小 频繁 公众 原因 可能性 报告 故障 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技公司简介 中关村互联网 科技集团 智慧科技互联网 广西互联网科技公司 长亮科技互联网金融 佩信高科技互联网 团飞科技与伯堂互联网服务平台 栖莱科技互联网股份有限公司 花神(南京)互联网科技有限公司 阿大互联网科技有限公司 互联网科技商业 宜昌元轩互联网科技有限公司 科技互联网的核心竞争力 本届互联网大会上的黑科技 广东鹅鹅鹅互联网科技有限公司 珠海东科互联网科技有限公司 中国互联网公司的科技投入 盐城市攀科互联网科技有限公司 小牛互联网科技有限公司地址 科技互联网 什么是科技互联网 科技类互联网 小马过河互联网科技 朱啸虎曾投资哪些互联网科技企业 互联网科技股为什么大涨 工业互联网科技创业 保山互联网科技靠谱吗 陕西彩京云互联网科技有限公司 科技互联网企业在行动
0