SYSMAN和DBSNMP用戶密碼過期后OEM無法使用,並報以下錯誤:

SYSMAN用戶的密碼被加密后存放在不同的地方,這樣database control(OMS和agent)可以不用每次訪問數據庫時都輸入密碼。
當在數據庫中改變了SYSMAN的密碼后,還要將新密碼提供給database control(OMS和agent)。
SYSMAN是OEM的管理員用戶,而DBSNMP是智能代理用戶,用於監控和管理數據庫性能。
1.停止dbconsole
> set ORACLE_SID=yb > set ORACLE_UNQNAME=yb > emctl stop dbconsole
2.檢查
> emctl status dbconsole
3.以dba權限登陸數據庫
SQL> alter user dbsnmp account unlock identified by oracle;
SQL> alter user sysman account unlock identified by oracle;
4.修改DBSNMP用戶的其他配置文件
> cd $ORACLE_HOME/host_sid/sysman/emd
保存備份targets.xml文件
編輯targets.xml文件,找到以下的行:
<property name="password" value="<encrypted_string>" encrypted="TRUE"> #將"<encrypted_string>"替換為新的密碼,將"encrypted"的值改為"FALSE"
5.修改sysman用戶的其他配置文件
> cd $ORACLE_HOME/host_sid/sysman/config
保存備份emoms.properties文件
編輯emoms.properties文件,找到以下的行:
oracle.sysman.eml.mntr.emdRepPwd=
#將加密的密碼替換為新的密碼
比如:
oracle.sysman.eml.mntr.emdRepPwd=oracle
編輯emoms.properties文件,找到以下的行:
oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE
#將該值修改為FALSE
6.重啟dbconsole
> emctl start dbconsole
7.檢查步驟4,步驟5中的配置文件中密碼是否已經變成加密
修改成功后,密碼已經變成加密格式,值FALSE變成TRUE.
