DBA日記之數(shù)據(jù)庫頻繁錯誤密碼登錄
今天客戶核心系統(tǒng)數(shù)據(jù)庫,早上九點左右,出現(xiàn)卡慢的現(xiàn)象,伴隨有登錄超時的現(xiàn)象,趕緊登錄到數(shù)據(jù)庫, 收集了AWR報告,發(fā)現(xiàn)有大量library cache lock等待事件,通過AWR分析和現(xiàn)場項目經理溝通,發(fā)現(xiàn)是有一個業(yè)務系統(tǒng)在用錯誤的密碼在頻繁登錄數(shù)據(jù)庫導致, 具體的分析如下:
TOP 10等待事件,有大量 library cache lock
wait分類里,排名第一的是并發(fā)
事件模型統(tǒng)計,顯示大量連接管理耗時
PLSQL登錄數(shù)據(jù)庫,通過審計信息可以發(fā)現(xiàn)有大量失敗的登錄信息,如登錄ip, 機器名,用戶名等。
在 Oracle 11g 中,為了提升安全性,Oracle 引入了『密碼延遲驗證』的新特性。這個特性的作用是,如果用戶輸入了錯誤的密碼嘗試登錄,那么隨著登錄錯誤次數(shù)的增加,每次登錄前驗證的時間也會增加,以此減緩可能對于數(shù)據(jù)庫重復的口令嘗試攻擊。但是對于正常的系統(tǒng),由于口令的更改,可能存在某些被遺漏的客戶端,不斷重復嘗試,從而引起數(shù)據(jù)庫內部長時間的 Library Cache Lock的等待。出現(xiàn)這種問題,時間模型Time Model 中會顯示 connection management call elapsed time 占據(jù)了主要的DB Time,這個等待直接表明是在建立數(shù)據(jù)庫連接時產生的。
這一類問題,可以通過以下命令關閉『密碼延遲驗證』這個特性,從而消除此類影響,以下命令將修改設置在參數(shù)文件中:
ALTER SYSTEM SET EVENT ='28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE; 并重啟數(shù)據(jù)庫。
下一篇:DBCC CHECKD 手工修復和優(yōu)化數(shù)據(jù)庫 各種參數(shù)的用法說明