cursor:mutex S和library cache lock 等待事件
2014-04-22 16:06
555 查看
一、问题描述
首先erp客户端无法登陆,登录系统查看发现cpu已经达到100%,用系统用户登录oracle数据库后,
查看等待事件:
SELECT event, COUNT(9) FROM v$session GROUP BY event;
查看等待事件相关的sql_id:
SELECT sql_id, COUNT(1) FROM v$session WHERE event = 'cursor: mutex S' GROUP BY sql_id;
查看相关sql语句:
SELECT sql_fulltext,sql_text FROM v$sql WHERE sql_id = '50u4uqg9vjk78';
查看该sql的version_count发现已经超过2000:
select sql_id,version_count from v$sqlarea where version_count> 500 order by 2 desc;
查看绑定变量不成功的原因:
SELECT COUNT(*) FROM v$sql_shared_cursor where sql_id='3axf89cxy7cv5' and bind_mismatch='Y';
查看该sql的子游标个数:
SQL> select count(CHILD_NUMBER) from v$sql_shared_cursor where sql_id='50u4uqg9vjk78';
COUNT(CHILD_NUMBER)
-------------------
935
查看该sql占用的内存大小:
SELECT SUM (sharable_mem) / 1024 / 1024 || 'M' FROM v$sqlarea where sql_id='50u4uqg9vjk78';
SUM(SHARABLE_MEM)/1024/1024||'M'
-----------------------------------------
21.51724147796630859375M
二、此问题是oracle 11.2.0.1版本的bug,可以通过打补丁解决问题。
也可以通过
SQL> alter system set "_cursor_features_enabled"=34 scope=spfile;
System altered.
SQL> alter system set event='106001 trace name context forever,level 1024' scope=spfile;
System altered.
这样来解决,参数“cursor_features_enabled”需要重启才可生效。
首先erp客户端无法登陆,登录系统查看发现cpu已经达到100%,用系统用户登录oracle数据库后,
查看等待事件:
SELECT event, COUNT(9) FROM v$session GROUP BY event;
查看等待事件相关的sql_id:
SELECT sql_id, COUNT(1) FROM v$session WHERE event = 'cursor: mutex S' GROUP BY sql_id;
查看相关sql语句:
SELECT sql_fulltext,sql_text FROM v$sql WHERE sql_id = '50u4uqg9vjk78';
查看该sql的version_count发现已经超过2000:
select sql_id,version_count from v$sqlarea where version_count> 500 order by 2 desc;
查看绑定变量不成功的原因:
SELECT COUNT(*) FROM v$sql_shared_cursor where sql_id='3axf89cxy7cv5' and bind_mismatch='Y';
查看该sql的子游标个数:
SQL> select count(CHILD_NUMBER) from v$sql_shared_cursor where sql_id='50u4uqg9vjk78';
COUNT(CHILD_NUMBER)
-------------------
935
查看该sql占用的内存大小:
SELECT SUM (sharable_mem) / 1024 / 1024 || 'M' FROM v$sqlarea where sql_id='50u4uqg9vjk78';
SUM(SHARABLE_MEM)/1024/1024||'M'
-----------------------------------------
21.51724147796630859375M
二、此问题是oracle 11.2.0.1版本的bug,可以通过打补丁解决问题。
也可以通过
SQL> alter system set "_cursor_features_enabled"=34 scope=spfile;
System altered.
SQL> alter system set event='106001 trace name context forever,level 1024' scope=spfile;
System altered.
这样来解决,参数“cursor_features_enabled”需要重启才可生效。
相关文章推荐
- 关于cursor: pin S wait on X 和 library cache pin 及其他等待事件
- Oracle grant 授权 出现 library cache lock 等待事件 处理
- Oracle 11g下重现library cache lock等待事件
- latch:library cache lock等待事件
- 关于library cache pin和lock等待事件的理解
- Oracle grant 授权 出现 library cache lock 等待事件 处理
- 遇到Library cache load lock 等待事件
- latch:library cache lock等待事件
- 怎么发现RAC环境中'library cache pin'等待事件的堵塞者(Blocker)?
- enq:SQ contention / row cache lock / DFS lock handle(SV) 等待事件 说明
- cursor: mutex S等待事件
- library cache pin等待事件的处理
- 11g等待事件之library cache: mutex X
- enq:SQ contention / row cache lock / DFS lock handle(SV) 等待事件 说明
- cursor: mutex S等待事件
- 发现个library cache LOCK AND library cache pin 等待事件
- LIBRARY CACHE PIN 等待事件
- library cache latch等待事件
- 怎么发现RAC环境中'library cache pin'等待事件的阻塞者(Blocker)?
- latch: library cache pin等待事件