您的位置:首页 > 数据库 > Oracle

Oracle单实例情况下的library cache pin的问题模拟与问题分析

2015-06-12 23:48 746 查看
Oracle单实例情况下的librarycachepin的问题模拟与问题分析

参考自:

WAITEVENT:"librarycachepin"ReferenceNote(文档ID34579.1)

HowtoFindtheBlockerofthe'librarycachepin'inaRACenvironment?(文档ID780514.1)



本机环境:Oracle10.2.0.5x86-64bitforRHEL5.8x86-64bit



第一个session:

[oracle@localhost~]$sqlplus/assysdba

SQL*Plus:Release10.2.0.5.0-ProductiononFriJun1217:27:282015

Copyright(c)1982,2010,Oracle.AllRightsReserved.

Connectedtoanidleinstance.

SQL>startup

ORACLEinstancestarted.

TotalSystemGlobalArea281018368bytes
FixedSize2095672bytes
VariableSize96470472bytes
DatabaseBuffers176160768bytes
RedoBuffers6291456bytes
Databasemounted.
Databaseopened.

SQL>createuserlc0019999identifiedbyaaaaaa;

Usercreated.

SQL>grantdbatolc0019999;

Grantsucceeded.

SQL>createuserlc0029999identifiedbyaaaaaa;

Usercreated.

SQL>grantdbatolc0029999;

Grantsucceeded.

SQL>createuserlc0039999identifiedbyaaaaaa;

Usercreated.

SQL>grantdbatolc0039999;

Grantsucceeded.

SQL>connlc0019999/aaaaaa
Connected.
SQL>showuser
USERis"LC0019999"

SQL>select*fromv$mystatwhererownum<2;

SIDSTATISTIC#VALUE
------------------------------
15901

SQL>Createorreplaceproceduredummyis
2begin
3null;
4end;
5/

Procedurecreated.

SQL>Begin
2Dummy;
3Dbms_lock.sleep(1000);
4End;
5/
------------>一直sleep着


以lc0029999登陆新开的一个session

[oracle@localhost~]$sqlpluslc0029999/aaaaaa

SQL*Plus:Release10.2.0.5.0-ProductiononFriJun1217:34:042015

Copyright(c)1982,2010,Oracle.AllRightsReserved.

Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.5.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions

SQL>select*fromv$mystatwhererownum<2;

SIDSTATISTIC#VALUE
------------------------------
15801

SQL>
SQL>alterprocedurelc0019999.dummycompile;

------------>一直hang着




以sys用户新开一个session

[oracle@localhost~]$sqlplus/assysdba

SQL*Plus:Release10.2.0.5.0-ProductiononFriJun1217:31:332015

Copyright(c)1982,2010,Oracle.AllRightsReserved.

Connectedto:
OracleDatabase10gEnterpriseEditionRelease10.2.0.5.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions

SQL>setline200
SQL>selectsid,serial#,eventfromv$sessionwhereeventlike'%librarycachepin%';

SIDSERIAL#EVENT
------------------------------------------------------------------------------------
15828librarycachepin

SQL>selectsid,serial#,p1raw,eventfromv$sessionwhereeventlike'%librarycachepin%';

SIDSERIAL#P1RAWEVENT
--------------------------------------------------------------------------------------
15828000000006BFF19B0librarycachepin

SQL>colownerfora30
SQL>colobjectfora30
SQL>SELECTkglnaown"Owner",kglnaobj"Object"
2FROMx$kglob
3WHEREkglhdadr='000000006BFF19B0'---->上面查出的P1RAW值。
4;---->该语句是查询出这个等待事件发生在哪个object上。

OwnerObject
------------------------------------------------------------
LC0019999DUMMY

SQL>
SQL>SELECTs.sid,kglpnmod"Mode",kglpnreq"Req"
2FROMx$kglpnp,v$sessions
3WHEREp.kglpnuse=s.saddr
4ANDkglpnhdl='000000006BFF19B0';---->该语句是查询出这个等待事件的等待者sid(REQ>0)和持有者sid(Mode>0)

SIDModeReq
------------------------------
15803
15920

SQL>

如下摘自:WAITEVENT:"librarycachepin"ReferenceNote(文档ID34579.1)
AnXrequest(3)willbeblockedbyanypinsheldSmode(2)ontheobject.
AnSrequest(2)willbeblockedbyanyXmode(3)pinheld,ormayqueuebehindsomeotherXrequest.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: