暂无图片
单个会话状态是inactive,但占用PGA内存很高,不释放,
我来答
分享
tlboco
2019-07-26
单个会话状态是inactive,但占用PGA内存很高,不释放,

一个Oracle11.2.0.4的单实例数据库运行在Windows2008上,目前PGA使用一直上升,60G的系统物理内存全部被吃掉了,通过分析发现是非活动会话不释放PGA且PGA随时间增长。

微信图片_20190726204709.png

对其中的一个inactive会话进行oradebug dump heapdump 536870917,请帮助分析一下PGA内存占用的原因。


我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
tlboco
上传附件:orcl_ora_15484.trc
暂无图片 评论
暂无图片 有用 0
章芋文

会话inactive内存不一定会释放,所有要让程序再处理完后断开连接,或者使用中间件。

如果无法整改,可以将会话kill。

暂无图片 评论
暂无图片 有用 0
tlboco

现场使用的是IBM的WAS中间件,目前长期出现多个inactive会话持续占用PGA内存,导致系统物理内存不足。希望通过DUMP文件分析出是何原因导致大量的使用PGA内存,是ORACLE的bug还是程序调用出现问题。是否有方法可以控制每个会话使用PGA的大小。版本11.2.0.4 Windows2008平台。

暂无图片 评论
暂无图片 有用 0
li02yu

sqlnet里有个回话超时的参数,可以试试

暂无图片 评论
暂无图片 有用 0
lastwinner
对目标会话做10046跟踪,看看都执行了什么(可通过系统级触发器来决定只针对WAS上进来的会话做10046)
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏