OracleDBConsole服務不能啓動的經歷 發佈時間:2009-2-5 10:34:07 作者:IT168 開心果 編輯:曉熊
OracleDBConsole[SID]服務簡介
OracleDBConsole[SID]服務負責Windows平臺下啓動Oracle企業管理器,從Oracle 10g開始引入這個服務,也是從Oracle 10g開始,Oracle的企業管理器從客戶端形式變爲瀏覽器操作模式,這裏的[SID]即Oracle SID,如果是默認安裝就是orcl,故這個服務在你的機器上可能就是OracleDBConsoleORCL,事實上在我的機器上也是它。 本文基於Oracle 11g,操作系統爲Windows xp,故本文描述的解決辦法僅供參考。
故障描述 在一次正常使用企業管理器後,重新啓動計算機,再次啓動OracleDBConsoleORCL服務時,報: Windows 不能在 本地計算機 啓動 OracleDBConsoleORCL。有關更多信息,查閱系統事件日誌。如果這是非 Microsoft 服務,請與服務廠商聯繫,並參考特定服務錯誤代碼 1。
在應用程序事件日誌中記錄瞭如下錯誤信息: Process exited abnormally during initialization. 解決過程 嘗試從命令行下啓動該服務,也以失敗告終,正尋思着是否刪除數據庫再重新安裝,突然想起Oracle企業管理器其實是一個單獨的組件,可以將其單獨刪除,再重新安裝的,其實這裏並不是刪除Oracle企業管理器,而是Oracle數據庫控制檯資料檔案庫,刪除資料檔案庫會同時刪除OracleDBConsoleORCL服務,並刪除用戶SYSMAN及其所屬對象,重新創建資料檔案庫就會重新添加OracleDBConsoleORCL服務,並創建SYSMAN用戶及其所屬對象。搞清楚這一點關係後,開始動手實施修復。
首先刪除資料檔案庫,注意此時Oracle的監聽器服務和數據庫服務必須處於啓動狀態,因爲刪除命令會連接到數據庫刪除SYSMAN用戶及其所屬對象:
C:/>emca -repos drop EMCA 開始於 2009-1-31 9:13:24 EM Configuration Assistant, 11.1.0.5.0 正式版 版權所有 (c) 2003, 2005, Oracle。保留所有權利。
輸入以下信息: 數據庫 SID: orcl 監聽程序端口號: 1521 SYS 用戶的口令:【輸入SYS用戶的口令,輸入口令時屏幕不會回顯】 SYSMAN 用戶的口令:【輸入SYSMAN用戶的口令】 SYSMAN 用戶的口令: 是否繼續? [是(Y)/否(N)]: y 2009-1-31 9:15:04 oracle.sysman.emcp.EMConfig perform 信息: 正在將此操作記錄到 c:/app/Administrator/cfgtoollogs/emca/orcl/emca_2009_01 _31_09_13_24.log。 2009-1-31 9:15:05 oracle.sysman.emcp.EMReposConfig invoke 信息: 正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)... 開始等待刪除,這個過程可能比較長,來杯咖啡,休息休息吧。
刪除結束後,往往有人會想到使用命令重新創建資料檔案庫,但經過我多次嘗試,使用這種辦法創建好資料檔案庫後,OracleDBConsoleORCL服務仍然無法啓動,企業管理器依舊無法使用,於是想到使用dbca來創建,於是在運行窗口輸入:dbca,啓動數據庫配置助手,在第一步時選擇“配置數據庫選件”,後面的操作只需要一直點擊下一步就可以了,注意在選擇是否使用EM資料檔案庫時,一定要選中,默認沒有選中,dbca檢查到系統中已經沒有EM資料檔案庫,於是就會重新創建,OracleDBConsoleORCL服務也會重新添加了,這也會花一段時間,如果dbca重新配置過程中不出現錯誤,那配置結束後,OracleDBConsoleORCL服務就能夠正常啓動,就可以正常使用Oracle企業管理器了。如果刪除EM資料檔案庫不徹底,運行dbca期間可能會報錯,一般是SYSMAN用戶及其對象沒有刪除乾淨,遇到這種問題時,只需要再次運行一次emca –repos drop即可。
如果在刪除EM資料檔案庫時,刪除了SYSMAN用戶及其所屬對象,但OracleDBConsole[SID]服務沒有刪除時,如果該服務還能夠啓動,並能夠通過瀏覽器進入,那此時就可以使用emca –repos create重新創建EM資料檔案庫即可。
總結 經過這次冒險,總覺得Oracle的OracleDBConsole[SID]服務很脆弱,在沒有任何誤操作的情況下,重新啓動計算機後,它也可能就啓動不了了,但在這時,大家一定要保持冷靜,多思考,辦法總是有的,不到萬不得已,不要重新安裝,建議大家在重新啓動系統前,先手動停止OracleDBConsole[SID]服務、監聽器服務和數據庫服務。|
另一種情況是IP變動了的原因,比如你在XP之類的系統通過DHCP獲得IP時容易出現這個問題,解決方法:
1:運行cmd
2:執行emctl start dbconsole,提示“找不到環境變量ORCALE_SID”,請運行SET ORCALE_SID=***
3:再次執行emctl start dbconsole,提示“無法找到D:/oracle/product/10.2.0/db_1/e1c8cd_SKYORCL”,複製該目錄下的“localhost_skyorcl”文件夾放在同一目錄下,且把名稱改成“e1c8cd_SKYORCL”。
4:再次執行emctl start dbconsole,提示“無法找到D:/oracle/product/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_e1c8cd_skyorcl”,複製該目錄下的“OC4J_DBConsole_localhost_skyorcl”文件夾放在同一目錄下,且把名稱改成“OC4J_DBConsole_e1c8cd_skyorcl”。
4:再次執行emctl start dbconsole,既可以啓動
注意:“localhost_skyorcl”與“OC4J_DBConsole_localhost_skyorcl”倆個文件夾的我名稱與目錄由您自己安裝決定。