在客戶處部署的REDHAT LINUX AS5 + ORACLE 10 RAC,安裝完時EM能夠正常訪問。自從客戶改了sys密碼後,通過WEB登上EM,英文版本報"The database status is currently unavailable. It is possible that the database is in mount or nomount state. Click 'Startup' to obtain the current status and open the database. If the database cannot be opened, click 'Perform Recovery' to perform an appropriate recovery operation.",中文版報“資料庫狀態當前不可用。可能是因為資料庫的狀態為裝載或不裝載。單擊 '啟動' 可以獲得目前狀態並開啟資料庫。如果無法開啟資料庫, 單擊 '執行恢複' 可執行相應的恢複操作。”,確認Listener與服務都是正常的,資料庫的狀態也是啟動的,無論是重新啟動dbconsole還是重新設定都不起作用。
解決方案如下:
1、停止dbconsole
[oracle@abcca2210028 ~]$ emctl stop dbconsole
查看狀態,確認dbconsole已經停止
[oracle@abcca2210028 ~]$ emctl status dbconsole
2、修改sysman使用者的密碼,我把密碼改成oracle123
[oracle@abcca2210028 ~]$ sqlplus / as sysdba
SQL> alter user sysman identified by oracle123
2 /
解鎖使用者
SQL> alter user sysman account unlock
2 /
確認密碼已修改
SQL> conn sysman/oracle123@csc
Connected.
3、轉到$ORACLE_HOME/host_sid/sysman/config目錄下
a. 把emoms.properties另存新檔emoms.properties.old
b. 修改emoms.properties檔案
找到oracle.sysman.eml.mntr.emdRepPwd=把等於後的加密字串替換成剛才更改的密碼oracle123;
找到oracle.sysman.eml.mntr.emdRepPwdEncrypted=TRUE 把TRUE換成FALSE。
4、重啟dbconsole,訪問EM恢複正常
[oracle@abcca2210028 ~]$ emctl start dbconsole