今天來公司啟動電腦,到登陸介面,電腦報有個服務啟動失敗,我的電腦沒有新裝軟體,周六還沒有問題,怎麼突然報這個錯誤?於是到事件檢視器中看看什麼問題,顯示是OracleDBConsoleorcl啟動失敗,到服務裡一看,確實沒有啟動。手動啟動一下,報錯誤碼2
我裝的是10g,於是到ORACLEproduct10.2.0db_1test_orclsysmanlog目錄看一下log裡寫了什麼,開啟OracleDBConsoleorclsrvc.log.
log最後記錄的是:
————– [OracleDBConsoleorcl] ————
EMDROOT=c:oracleproduct10.2.0db_1
ORACLE_HOME=c:oracleproduct10.2.0db_1
EMDSTATE=c:oracleproduct10.2.0db_1wangzh_orcl
CONSOLE_CFG=dbconsole
TRACE_LEVEL=16
TIMEOUT=15
12/10/07 10:56:03 Start pending…
12/10/07 10:56:03 Verifying dbconsole is not started already. Command line "c:oracleproduct10.2.0db_1binemctl.bat" istatus dbconsole
12/10/07 10:56:04 dbconsole launch commandline is "c:oracleproduct10.2.0db_1binemctl.bat" istart dbconsole
12/10/07 10:56:04 Tracking process launch…
12/10/07 10:56:34 dbconsole exited with retCode 2.
12/10/07 10:56:34 Check c:oracleproduct10.2.0db_1test_orclsysmanlogemdbconsole.nohup for details
日誌讓看emdbconsole.nohup檔案,目錄裡沒有這個檔案呀。
手動執行一下emctl.bat,於是啟動控制台,執行emctl.bat istart dbconsole,報錯,ORACLE_SID沒有定義,開啟emctl.bat看看,這裡是定義環境變數的地方,其中已經設定了這些:
if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)
if not defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%)
if defined REMOTE_EMDROOT (set ORACLE_HOME=%REMOTE_EMDROOT%)
if defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%)
if defined REMOTE_EMDROOT (set LOCAL_EMDROOT=c:oracleproduct10.2.0db_1)
……
後邊還有一條設定:
if not defined DBCONSOLE_SERVICE_NAME (set DBCONSOLE_SERVICE_NAME=OracleDBConsole%ORACLE_SID%),用到了
ORACLE_SID,但沒有看到前面設定,只能手動設定ORACLE_SID試試,於是加了一條設定:
if defined REMOTE_EMDROOT (set ORACLE_SID=orcl) orcl是我的資料庫執行個體名
到服務中啟動OracleDBConsoleorcl,ok,沒有報錯;
重新啟動電腦,也沒有報錯,OracleDBConsoleorcl服務也啟動了