1. 程式人生 > >Oracle使用者頻繁被鎖原因排查與解決

Oracle使用者頻繁被鎖原因排查與解決

問題描述:

專案小組同事說最近一段時間內,Oracle使用者總是頻繁被鎖,導致應用及客戶端均無法登入操作資料庫。

現象跟蹤:

通過檢視監聽日誌listener.log,發現很多從10.1.3.107應用伺服器過來的訪問記錄,並伴有警告資訊出現,部分內容如下:

... ...

05-AUG-2015 03:49:57 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=weblogic))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.3.107)(PORT=15143)) * establish * ORCL * 0
05-AUG-2015 03:50:02 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=weblogic))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.3.107)(PORT=15146)) * establish * ORCL * 0
05-AUG-2015 03:50:04 * ping * 0
WARNING: Subscription for node down event still pending

service_update * orcl * 0

... ...

排查解決:

tail -f listener.log檢視Oracle資料庫監聽日誌
select * from dba_propties;檢視登陸失敗、密碼過期時間引數設定
alter user dbuser account unlock;使用者解鎖

原來是應安全部門要求對資料庫進行安全檢查,資料庫密碼設定複雜度不符合安全要求,所以Oracle使用者曾改過密碼。而應用系統伺服器採用Weblogic部署,weblogic配置的資料來源並未更改資料庫密碼,資料庫預設限定登陸失敗次數為10次,因此當業務層大量請求訪問資料庫超過許可權失敗次數後,從而導致使用者頻繁被鎖。

後續注意:

當資料庫使用者密碼更改後,應及時檢查應用系統資料庫連線引數、DBlink是否更新,避免因登陸密碼失敗導致使用者被鎖。