[20170727]library cache: mutex X.txt

[20170727]library cache: mutex X.txt

--//如果多个会话访问v$sql视图,其底层视图是x$kglcursor_child,如果几个会话同时访问,会出现library cache: mutex X等待事件,通
--//过例子说明:

1.环境:
SYS@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

$ cat b3.sql
declare
c integer;
begin
for i in 1..&1
loop
execute immediate 'select count(*) from v$sql' into c;
end loop;
end;
/
quit

$ cat b1.sh
#! /bin/bash
for i in $(seq 10); do
sqlplus -s -l / as sysdba  @b3.sql 1e5 &
done

$ cat wait.sql
  SELECT p1raw
        ,p2raw
        ,p3raw
        ,p1
        ,p2
        ,p3
        ,sid
        ,serial#
        ,seq#
        ,event
        ,state
        ,wait_time_micro
        ,seconds_in_wait
    FROM v$session
   WHERE wait_class <> 'Idle'
ORDER BY event;

2.测试:
$ . b1.sh

-/打开另外的会话测试:

SYS@book> @ &r/wait
P1RAW            P2RAW            P3RAW                      P1           P2  P3          SID      SERIAL#         SEQ# EVENT                     STATE               WAIT_TIME_MICRO SECONDS_IN_WAIT
---------------- ---------------- ---------------- ------------ ------------ --- ------------ ------------ ------------ ------------------------- ------------------- --------------- ---------------
0000000062657100 0000000000000001 00                 1650815232            1   0           54           39           38 SQL*Net message to client WAITED SHORT TIME                 1               0
00000000000047C7 000000B800000000 0000000000000031        18375 790273982464  49           80           27         1283 library cache: mutex X    WAITING                         841               0
000000000000503B 000000AB00000000 0000000000000031        20539 734439407616  49           94            7         1552 library cache: mutex X    WAITED SHORT TIME                 4               0
0000000000000BF0 000000B800000000 0000000000000031         3056 790273982464  49          106            5         1285 library cache: mutex X    WAITING                        1435               0
000000000001EACE 00               0000000000000031       125646            0  49          184            3         1136 library cache: mutex X    WAITED SHORT TIME                 2               0
00000000000001C4 0000005E00000000 0000000000000031          452 403726925824  49          132            3         1466 library cache: mutex X    WAITED SHORT TIME                 2               0
000000000000ECBA 00               0000000000000031        60602            0  49          144            5         1607 library cache: mutex X    WAITED SHORT TIME              1065               0
000000000001FC45 00               0000000000000031       130117            0  49          158            3         1467 library cache: mutex X    WAITED SHORT TIME                 2               0
0000000000018D9D 00               0000000000000031       101789            0  49          171            3         1559 library cache: mutex X    WAITED SHORT TIME                 3               0
0000000000003DE1 000000B800000000 0000000000000031        15841 790273982464  49           67           69         1318 library cache: mutex X    WAITED SHORT TIME                 2               0
000000000001EACE 00               0000000000000031       125646            0  49          119            3         1535 library cache: mutex X    WAITED SHORT TIME                 3               0
11 rows selected.

SYS@book> select * from V$EVENT_NAME where name='library cache: mutex X' ;
EVENT#     EVENT_ID NAME                   PARAMETER1 PARAMETER2 PARAMETER3 WAIT_CLASS_ID  WAIT_CLASS# WAIT_CLASS
------- ------------ ---------------------- ---------- ---------- ---------- ------------- ------------ --------------------
    289   1646780882 library cache: mutex X idn        value      where         3875070507            4 Concurrency

SYS@book> column location format a40
SYS@book> select * from (select * from V$MUTEX_SLEEP where mutex_type='Library Cache' order by 3 desc) where rownum<=5;
MUTEX_TYPE           LOCATION                                       SLEEPS    WAIT_TIME
-------------------- ---------------------------------------- ------------ ------------
Library Cache        kglic1    49                                  1540346            0
Library Cache        kglReleaseHandleReference 125                   19223            0
Library Cache        kglGetHandleReference 124                       10570            0
Library Cache        kgllkdl1  85                                       16            0
Library Cache        kglllal3 111                                       13            0

--//这里的49应该对应前面的P3.
--//如果应用老是执行相同的sql语句,出现最多的等待事件是cursor: pin S .大家可以自行测试.

时间: 2024-10-02 12:43:50

[20170727]library cache: mutex X.txt的相关文章

ORACLE11G QMNC引起的library cache: mutex X

   操作系统类型:Linux ### 2.6.39-400.17.1.el6uek.x86_64 #1 SMP Fri Feb 22 18:16:18 PST 2013 x86_64 x86_64 x86_64 GNU/Linux       数据库版本:SQL*Plus: Release 11.2.0.4.0 Production    数据库类型:OLAP    问题现象描述:最近通过linux的top发现有2个进程始终占用CPU90%左右,如下图所示:          然后查看相关进程

Oracle后台专家解决library cache锁争用的终极武器

  11月19日,云汝网络科技合伙人宋日杰(Roger Song)在"DBA+东北群"进行了一场关于"使用Hotcopy缓解 library cache: mutex X 的争用"的线上主题分享.小编特别整理出其中精华内容,供大家学习交流.    嘉宾简介    DBA+原创专家团成员 超过13年IT及Oracle数据库经验 历任中国联通系统工程师.维布络信息科技Oracle ERP管理顾问 2008年加入Oracle全球技术支持(GCS),专注性能分析 2012年

故障分析:一则library cache lock问题处理

编辑手记:library cache lock 大家都并不陌生,在MOS上对该阻塞的一般成因描述为:一般可以理解的是alter table或者alter package/procedure会以X模式持有library cache lock,造成阻塞(444560.1).但针对具体问题仍要具体分析,今天分享一则因SQL绑定变量出现空值,导致大量子游标产生并引发library cache lock 的故障,供大家参考借鉴. 请故障现象及影响某数据库为Oracle 11.2.0.3.9 RAC Lin

【MOS】常见问题cursor library cache类型的等待事件

[MOS]常见问题:'cursor:mutex ..'/ 'cursor:pin ..'/ 'library cache:mutex ..'类型的等待事件 (文档 ID 1525791.1) 文档内容 用途 问题和答案   什么是 'cursor: ' 等待事件?   最常见的等待事件是什么?   等待事件最常见的原因是什么?   如何避免这些等待事件?   可以在什么位置找到原因诊断以及关于这些等待事件的更多信息?   有用参考 参考 适用于: Oracle Database - Enterp

[20161216]关于library cache lock.txt

[20161216]关于library cache lock.txt --这几天一直在关注这个链接,http://www.itpub.net/thread-2073170-1-1.html --就是library cache lock导致挂死业务,一般引起这个问题编译包,而应用正好在使用执行这个包,以及11g口令大小写导致无法登录的问题, --我自己很久以前也遇到过一些,那时的系统是10g,http://www.itpub.net/thread-1842463-1-1.html,但是只要分析某个

[20130228]等待事件library cache pin的快速定位与解决.txt

[20130228]等待事件library cache pin的快速定位与解决.txt 前几天管理的服务器出现library cache pin,当时解决有点乱了阵脚,正好下午空闲做一个例子来定位library cache pin事件以及解决方法,另外我也看许多blog,感觉定位太复杂,不合适快速解决问题: 1.环境以及问题再现: SQL> select * from v$version where rownumBANNER------------------------------------

shared pool latch/ library cache latch /lock pin介绍

latch:library cache --desc v$librarycache; latch:library cache用于保护hash bucket. library cache lock保护HANDLE. library cache pin保护library cache object--LCO. 从10G开始,library cache lock和library cache pin被MUTEX部分取代.暂时不讨论MUTEX. latch:library cache的数量: SYS@ by

shared pool系列三:library cache结构/library cache object的结构

library cache结构/library cache object的结构-dump LibraryHandle Library cache结构 Library cache最主要的功能就是存放用户提交的SQL语句,SQL语句相关的解析树(解析树也就是对SQL语句中所涉及到的所有对象的展现)--->共享SQL区(shared SQL areas),私有SQL区(private SQLareas,如果配置了共享服务器),执行计划,用户提交的PL/SQL程序块(包括匿名程序块,存储过程,包,函数等

oracle数据库library cache lock引发的一个问题解决办法

美女同事说某个客户有个问题,系统出现了大量的library cache lock. 导致业务严重受阻,具体表现是所有访问某个表的SQL语句都会挂起. 首先我们来看hanganalyze 的结果: PORADEBUG END ORIGINATING INST:1 SERIAL:0 PID:38076802 ******************************************************************** Found 341 objects waiting fo