問題背景,客戶反饋DB服務器cpu異常高數據庫
1> 查看AWR報告安全
大量library cache lock等待服務器
大量library cache lock致使登錄hang住,時間所有消耗在了 connection management call elapsedsession
先查殺等待會話blog
select 'alter system kill session ''' || a.sid || ',' || serial# || ''';'事件
from v$session ait
where a.username='ECOLOGY' io
AND a.STATUS='ACTIVE' event
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關閉這個特性,從而消除此類影響,如下命令將修改設置在參數文件中:
ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;