暂无图片
ora-04031 无法分配shared pool
我来答
分享
多米爸
2019-10-30
ora-04031 无法分配shared pool

想了解一下怎么根本解决ora-04031 无法分配shared pool的问题?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
文成

墨天轮可以搜索到很多相关文档,大部分跟bug相关,在诊断的时候可以根据内存分配差异情况,以及sql解析问题
参考以下文章
04031

暂无图片 评论
暂无图片 有用 0
打赏 0
李嘉诚

ora-04031 shared pool 配置正确的话,生产库一般是因为大量硬解析sql未使用绑定变量导致的,建议使用绑定变量减少硬解析,硬解析可以生成awr查看,你也可以找一条查找硬解析语句的sql找到是哪个语句导致的;
SELECT *
FROM (SELECT a.PARSING_SCHEMA_NAME,
substr(sql_text, 1, 60),
count(1) counts,
dense_rank() over(order by count(*) desc) ranking
FROM v$sql a
where a.PARSING_SCHEMA_NAME <> ‘SYS’
GROUP BY a.PARSING_SCHEMA_NAME, substr(sql_text, 1, 60)
HAVING count(1) > 10)
where ranking <= 50;

暂无图片 评论
暂无图片 有用 0
打赏 0
weizhao.zhang (anbob)
上传附件:4031_diag_script.7z
暂无图片 评论
暂无图片 有用 0
打赏 0
weizhao.zhang (anbob)
  • 1, AMM ASMM is enable
  • 2, shared pool too small
  • 3, unbound variable SQL too much, resulting in fragmentation
  • 4, oracle bug
暂无图片 评论
暂无图片 有用 1
打赏 0
多米爸

1、SGA是30G
2、shared pool 是5G
3、没有使用内存的自动管理—是否需要改成自动管理?
4、绑定变量个人不是很懂,不知道怎么判断是否使用绑定变量!
5、数据库版本11.2.0.3.0 之前已经打过补丁了11.2.0.3.15

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文

可以先了解下硬解析和绑定变量的关系,这个文章又很多。
SGA 30G的话,shared pool可以适当调整到8-10G。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 数据库中有一个表select * 查询卡死
回答 2
已采纳
如果已经中断了,通过ash报告也可以找到问题。
请问下,根据这个时间点恢复表空间,恢复不到这个时间点,是有什么问题
回答 1
已采纳
你这个时间是指的2021090414:53:58.00,如果你的记录是在14:53:58.30这种情况下,那肯定是恢复不到的。
ODA一体机如何实现RAC集群部署的?
回答 2
可以做rac的是odax82ha这个型号,两个服务器一台存储
请问一次归档是基于cdb级别,如果我的ogg以其中一个pdb运行,产生大量归档,我想把这单个pdb归档屏蔽掉可以吗
回答 2
filter/map配置,另外经典模式不支持12c多租户库
Oracle在缓冲区缓存中如何管理块?
回答 1
已采纳
Oracl缓冲区缓存中的块实质上在一个区域上管理,但有两个不同的列表指向这些块。脏(dirty)块列表,其中的块需要由数据库块写入器(DBWn)写入磁盘。非脏(nodirty)块列表。在Oracle8
oracle如何增加日志组?
回答 1
已采纳
alterdatabaseaddlogfilegroup4'/oradata/oracle/oradata/oraclesid/redo04.log'size100M;举个例子
ogg同步数据到kafka,topic中查不到
回答 2
topic名称不正确。检查kafka.props配置文件中定义的topicMappingTemplate是否正确。topic名称必须与目标端Kafka集群中存在的topic名称一致。数据格式不正确。检
Oracle 数据库进程吃cpu sy,还不停启动tns进程,有什么分析思路?
回答 2
确认下占cpu是什么进程,对应的进程具体做了什么,不停重启tns,数据库什么版本
Oracle 数据库的数据发生变化,如何保证数仓的数据和数据库是一致的?
回答 3
OGG是问题最小的一种解决方案。
Oracle ogg 抽取进程里面表写重复了 在目标端应用 数据也会重复吗?
回答 1
已采纳
目标没有写重复吧;假设目标R进程也写重复,那肯定会重复入,不过有主键或者唯一约束会报错冲突。