欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

一次library cache pin故障的解決過程

系統 1731 0

在dbsnake 上看到的這篇文章,轉過來。 主要還是學習解決問題的一個思路。這個往往比問題的解決更重要。

原文鏈接如下:

http://dbsnake.com/2010/06/solve-library-cache-pin.html

內容如下:

今天接到同事的電話,說他的一個存儲過程已經run了一個多小時了,還在繼續run,他覺得極不正常,按道理說不應該run這么長時間。

我說那我去看一下吧。

這個庫是一個AIX上的10.2.0.4,我采集了一下問題時間段的AWR報告:

一次library cache pin故障的解決過程

從AWR報告結果里我們可以看出在出問題的時間段, 系統在經歷嚴重的library cache pin以及library cache lock等待。

根據Load Profile的信息, 看出導致上述library cache pin和library cache lock的并不是hardparse。

對于library cache pin等待來說,AWR報告的作用有限,最有效的方式就是找到持有library cache pin以及等待library cache pin的session,然后看看他們在做什么:

SQL> SELECT s.sid, kglpnmod"Mode", kglpnreq "Req", SPID "OS Process"

2 FROM v$session_wait w, x$kglpn p,v$session s ,v$process o

3 WHERE p.kglpnuse=s.saddr

4 AND kglpnhdl=w.p1raw

5 and w.event like '%library cache pin%'

6 and s.paddr=o.addr

7 /

SID Mode Req OS Process

---------- ---------- ---------- ------------

396 0 2 6381970

396 0 2 6381970

396 0 2 6381970

396 0 2 6381970

341 2 0 4092132

341 2 0 4092132

341 2 0 4092132

341 2 0 4092132

363 0 2 3514690

363 0 2 3514690

363 0 2 3514690

363 0 2 3514690

304 0 2 3977478

304 0 2 3977478

304 0 2 3977478

304 0 2 3977478

354 0 3 3137874

354 0 3 3137874

354 0 3 3137874

354 0 3 3137874

20 rows selected

我那位run存儲過程的同事所在的session是396,從上述結果里我們可以看出來396現在想以Share模式(即Req=2)去持有library cache pin,同時現在持有上述library cache pin的是session 341,且341的持有模式也是Share(即Mode=2)。

本來Share和Share是可以共享的,但不幸的是在396之前,session 354想以Exclusive模式(即Req=3)去持有上述librarycache pin,這直接導致了396需要處于等待的Queue中,同時處于Queue中的還有363和304。

我為什么這么說呢,因為oracle對library cache pin的解釋中有一句非常經典的話:

An X request (3) will be blocked by anypins held S mode (2) on the object.
An S request (2) will be blocked by any X mode (3) pin held, or may queue behind some other X request.

所以從AWR報告和上述查詢結果中我們可以得出如下結論:

1、 我那位run存儲過程的同事為什么run了1個多小時還沒有run完是因為這個存儲過程正在經歷嚴重的library cache pin等待;

2、 而為什么會導致嚴重的library cache pin等待是因為session 341和354聯手達到了這一效果,即341以Share模式持有library cache pin,接著354想以Exclusive模式持有,這直接導致所有的后續請求全部被處于等待的Queue中。 也就是說341阻塞了354,而354又間接阻塞了396。

既然知道了原因,那我們去看一下session 341在做什么事情:

SQL> selectdecode(sql_hash_value,0,prev_hash_value,sql_hash_value) from v$session wheresid=341;

DECODE(SQL_HASH_VALUE,0,PREV_H

------------------------------

784727971

間隔10秒鐘后再次執行:--間隔10秒查詢的目的是判斷session 的內容是否改變,從而判斷出session 在干什么

SQL> selectdecode(sql_hash_value,0,prev_hash_value,sql_hash_value) from v$session wheresid=341;

DECODE(SQL_HASH_VALUE,0,PREV_H

------------------------------

784727971

間隔10秒鐘后再次執行:

SQL> selectdecode(sql_hash_value,0,prev_hash_value,sql_hash_value) from v$session wheresid=341;

DECODE(SQL_HASH_VALUE,0,PREV_H

------------------------------

784727971

SQL> select sql_text from v$sqltextwhere hash_value=784727971 order by piece;

SQL_TEXT

----------------------------------------------------------------

begin -- Call the procedurep_adj_rrp_main(o_vc_flag => :o_vc_flag); end;

從結果里可以看到341一直在run一個存儲過程。

給持有341的那位大姐打電話,問她在做什么,她告訴我說她從昨晚就開始run這個存儲過程,今早來看發現死掉了,所以她就沒管了。

知道原因后處理起來還是很容易的,當我把session 341干掉后,整個系統的library cache pin一下子就降下來了,接著我那位同事的run了一個多小時的存儲過程過了沒多久就run完了。

-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿); DBA2 群:62697977(滿)DBA3 群:62697850(滿)

DBA 超級群:63306533(滿); DBA4 群: 83829929 DBA5群: 142216823

DBA6 群:158654907 聊天 群:40132017 聊天2群:69087192

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

一次library cache pin故障的解決過程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品久久久爽爽久久久AV | 亚洲国产最新 | 国产精品视频免费视频 | 亚洲精品一区henhen色 | 免费大香伊蕉在人线国产 | 波多野结衣一区二区三区 | 欧美日韩不卡 | 精品中文字幕一区 | 男人天堂中文字幕 | 亚洲人成在线播放 | 亚洲一区中文字幕在线观看 | 五月婷婷激情第五季 | 久久精品国产免费观看99 | 青青草久久爱 | 天天干天天操天天爽 | 色天天天天综合男人的天堂 | 国产精品亚洲精品日韩已方 | 成人久久一区 | 日本捏胸摸下面免费视频 | 精品69久久久久久99 | 双性精h调教灌尿打屁股的文案 | 亚洲线精品一区二区三区 | 国产在线网址 | 欧美黄色大片在线观看 | 青青草99热久久 | 亚洲欧洲av在线 | 日韩一区二区av | 欧美交性又色又爽又黄 | 午夜在线影院 | 天天爱天天爽 | 国产精品国产亚洲精品不卡 | 日本一区视频在线播放 | 久久综合九色综合97欧美 | 国产精品98福利小视频 | 青娱乐免费视频观看 | 亚洲国产综合久久精品 | 五月综合久久 | 国产精品日韩欧美在线第3页 | 国产视频一区二区在线观看 | 欧美一级毛片欧美毛片视频 | 天天插天天爽 |