library cache lock等待事件


問題背景,客戶反饋DB服務器cpu異常高

 

1> 查看AWR報告

 

大量library cache lock等待

 

大量library cache lock導致登陸hang住,時間全部消耗在了 connection management call elapsed

先查殺等待會話

1 select 'alter system kill session ''' || a.sid || ',' || serial# || ''';'
2   from v$session a
3  where a.username='ECOLOGY' 
4  AND a.STATUS='ACTIVE'    
5  and event in('library cache lock','library cache: mutex X')

 

3> 

對於正常的系統,由於密碼的更改,可能存在某些被遺漏的客戶端,不斷重復嘗試使用錯誤密碼登錄數據庫,

從而引起數據庫內部長時間的”library cache lock”或”row cache lock”的等待,這種情形非常常見。

這種現象在Oracle 10.2和11.1中體現的等待事件為:”row cache lock”,而在Oracle 11.2中體現的等待事件為:”library cache lock”。

 

在 Oracle 11g 中,為了提升安全性,Oracle 引入了『密碼延遲驗證』的新特性。這個特性的作用是,如果用戶輸入了錯誤的密碼嘗試登錄,

那么隨着登錄錯誤次數的增加,每次登錄前驗證的時間也會增加,以此減緩可能對於數據庫重復的口令嘗試攻擊。

(確實有錯誤的數據庫連接)

但是對於正常的系統,由於口令的更改,可能存在某些被遺漏的客戶端,不斷重復嘗試,從而引起數據庫內部長時間的 Library Cache Lock的等待,這種情形非常常見。

如果遇到這一類問題,可以通過Event 28401關閉這個特性,從而消除此類影響,以下命令將修改設置在參數文件中:

1 ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM