為了學習,把資料庫的verify_function功能開啟,自動將default概要檔案的密碼到期時間設定成60天,密碼重用的天數為18000天,密碼滿足複雜性要求等等,關閉verify_function功能後,沒有及時修改default概要檔案,導致sysman和dbsnmp使用者密碼到期後,開啟OEM介面直接報錯如,其他組件均正常!
查看sysman和dbsnmp使用者的狀態均為密碼到期,修改密碼後重新登入OEM,依然報錯如!
SQL> select username,account_status from dba_users where username='SYSMAN';
USERNAME ACCOUNT_STATUS
SYSMAN EXPIRED
SQL> alter user sysman identified by "123456";
User altered.
SQL> alter user dbsnmp identified by "123456";
User altered.
重新查詢sysman和dbsnmp使用者的狀態,這次的狀態為LOCKED(TIMED)
SQL> select username,account_status from dba_users where username='SYSMAN';
USERNAME ACCOUNT_STATUS
SYSMAN LOCKED(TIMED)
原因:
dbsnmp和sysman這兩個使用者和oem緊密相關,dbsnmp使用者啟動Oracle智能代理,用於收集oracle系統運行狀態的相關資料,sysman是oem的超級管理員。如果配置了oem後,又使用alter user <使用者名稱> identified by <新口令>;修改了這兩使用者的口令,就會出現dbsnmp 和sysman "LOCKED(TIMED)". 的情況。
解決方案:
還必須同步修改oem中記錄的dbsnmp和sysman使用者的口令。
$emca -config dbcontrol db
根據提示修改sysman和dbsnmp的口令即可。