記一次library cache pin事件解決
ORACLE 10.2.0.4
REDHAT 5.3 32bit
[@more@]今天開發人員突然報賬說編譯儲存過程的時候一直卡到哪裡就死掉了,透過查詢發現在event列有一個library cache pin事件一直在等待,得到SID後查詢session_wait:
LIBRARY CACHE PIN事件主要是由於管理library cache併發的,當一個object被pin住的話同時這個object會有一個heap載入記憶體,當使用者要修改或者編譯這個object的時候這個object的heap就必須要先被pin住,也就是拿到編輯鎖,這個事件的等待時間通常為3秒。
library cache pin引數解析:
P1 KGL(kernel general Library ) 地址
P2 pin的地址
P3 100*mode+namespace
其中P1,P2分別和x$kglpn和x$kglob相關聯
問題解決:
select sid,event,p1,p2,p3 from v$session_wait where sid=192;
透過以上查詢的P1列轉換為16進位制的,然後將轉換後的結果作為X$KGLPN表的KGLPNHDL作為條件進行查詢:
select * from x$kglpn t where kglpnhdl = '7D897554';
KGLPNHDL --- Library Cache Handle Address
KGLPNADR --- Library Cache Pin Address.
KGLPNSES --- 持有鎖的session
透過檢視KGNMOD列有一個狀態為2的,其他的均為0,說明此記錄的session持有這個heap的鎖,
透過P1列與x$kglob的KGLHDADR進行關聯查詢出鎖住的SQL:
select * from x$kglob where KGLHDADR = '7D897554';
最後查詢出持有此鎖的sessionID:
select a.sid, a.username, a.program
from v$session a, x$kglpn b
where a.saddr = b.kglpnuse
and b.kglpnhdl like '%7D897554%';
得到SID後去session裡面找到對應的記錄進行kill:
select * from v$session_wait t where t.SID = 253;
alter system kill session '253,20928';
最後重新執行編譯操作,問題解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10130206/viewspace-1043076/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【等待事件】library cache pin事件
- library cache pin和library cache lock(一)
- library cache pin和library cache lock (zt)
- library cache pin和library cache lock(二)
- library cache pin(轉)
- DBA手記(學習)-library cache pin
- Library Cache最佳化篇(一)降低library cache lock和library cache pin的方法
- [20240920]跟蹤library cache lock library cache pin使用gdb.txt
- [20240824]跟蹤library cache lock library cache pin使用gdb.txt
- 【ASK_ORACLE】Library Cache概念篇(二)之Library Cache Pin的定義Oracle
- [20241105]跟蹤library cache lock library cache pin使用gdb(11g)2.txt
- [20241108]跟蹤library cache lock library cache pin使用gdb(11g)4.txt
- [20241108]跟蹤library cache lock library cache pin使用gdb(11g)3.txt
- latch:library cache lock等待事件事件
- 【ASK_ORACLE】Library cache pin 與 library load lock的關係和區別Oracle
- Library Cache 診斷:Lock, Pin 以及 Load Lock (文件 ID 1548524.1)
- 一次library cache lock 問題分析
- 【TUNE_ORACLE】等待事件之“library cache lock”Oracle事件
- 【TUNE_ORACLE】等待事件之“library cache pins”Oracle事件
- library cache lock和library cache bin實驗_2.0
- Oracle Library cacheOracle
- 【ASM_ORACLE】Library Cache最佳化篇(二)Library cache load lock的概念和解決辦法ASMOracle
- [20240827]分析為什麼出現library cache lock等待事件2.txt事件
- [20240828]分析為什麼出現library cache lock等待事件5.txt事件
- [20190402]Library Cache mutex.txtMutex
- [20210507]dump library_cache.txt
- [20210507]分析library cache轉儲.txt
- 徹底搞清楚library cache lock的成因和解決方法(轉)
- [20210507]dump library_cache 2.txt
- [20210602]分析library cache轉儲 5.txt
- [20210524]分析library cache轉儲 4.txt
- [20210524]分析library cache轉儲 3.txt
- [20210508]分析library cache轉儲 2.txt
- [20201203]探究library cache mutex X 3.txtMutex
- [20201117]解析cursor pin S等待事件.txt事件
- [20220301]oracle如何定位使用library cache mutex.txtOracleMutex
- [20210902]library_cache物件級別轉儲.txt物件
- 記錄一次解決App崩潰問題的解決方案APP
- [20220302]oracle如何定位使用library cache mutex 2.txtOracleMutex