客户的数据库在出账期间有工具登录Oracle数据库偶尔性报ORA-04031,经过分析是因为该工具需要查询v$session,经过分析确定是Bug 12808696 – Shared pool memory leak of “hng: All sessi” memory (Doc ID 12808696.8),重现错误如下
节点1进行查询报ORA-4031
| 代码如下 | 复制代码 |
| SQL> select count(*) from v$session; COUNT(*) ---------- 1536 SQL> select count(*) from gv$session; COUNT(*) ---------- 2089 SQL> select /*+ full(t) */ count(*) from gv$session t; COUNT(*) ---------- 2053 SQL> select * from gv$session; select * from gv$session * ERROR at line 1: ORA-12801: error signaled in parallel query server PZ93, instance ocs_db_2:zjocs2 (2) ORA-04031: unable to allocate 308448 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","hng: All sessions data for API.") |
|
节点2进行查询报ORA-04031
| 代码如下 | 复制代码 |
| SQL> select * from gv$session; select * from gv$session * ERROR at line 1: ORA-12801: error signaled in parallel query server PZ95, instance ocs_db_2:zjocs2 (2) ORA-04031: unable to allocate 308448 bytes of shared memory ("shared pool","unknown object","sga heap(6,0)","hng: All sessions data for API.") SQL> select * from v$session; select * from v$session * ERROR at line 2: ORA-04031: unable to allocate 308448 bytes of shared memory ("shared pool","unknown object","sga heap(7,0)","hng: All sessions data for API.") |
|
通过上述分析:确认是节点2的v$session遭遇到Bug 12808696,导致在该节点中中查询v$session和Gv$session报ORA-04031,而在节点1中查询v$session正常,查询Gv$session报ORA-04031.
bug在11.1.0.6中修复,所有的10g版本中未修复,只能通过临时重启来暂时避免,注意该bug通过flash shared_pool无法解决
如果您有权限可以进步一查询SR 3-7670890781: 查询v$session的BLOCKING_SESSION字段时,出现ora-04031错误
创造与魔法九游版本
创造与魔法九游版采用了极致创新的魔幻游戏玩法感受,游戏具备最
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类