網路斷掉,不能啟動DBConsole服務的解決這個問題有不少剛剛接觸的Oracle 10g的XDJM都遇到過,我在筆記本上也遇到過,本來DBConsole是可以用的,但是一旦筆記本是使用無線網卡連網的,所以有時候出去的時候沒有接 上wifi的話,也會出現同樣的狀況。
錯誤狀況:
Window平台
以前的DBConsole是可以啟動的,但是拔掉網路啟動OracleDBConsoleXXX服務,服務啟動不了。
錯誤排查:
先設定window環境變數 ORACLE_SID=資料庫SID
開啟cmd
輸入 emctl start dbconsole
將會有錯誤資訊提示,如果沒有設定ORACLE_SID 則提示
Environment variable ORACLE_SID not defined. Please define it.
如果已經設定了ORACLE_SID 則錯誤提示為
oc4j configration issue.D:\oracle\product\10.1.0\db_1\oc4j\j2ee\OC4J_DBConsole_localhost_java not found.
其中D:\oracle\product\10.1.0\db_1為你自己機器中ORacle10g的home目錄
這個資訊非常的重要,也是服務起不來的根本原因
DBConsole是一個java的web application,在建立dbconsole的時候,我們會根據機器以及Oracle的資訊建立repos,這個repos就是存放 DBConsole的配置資訊的倉庫,由於機器斷網,會把機器的名字映射為localhost,而建庫的時候是預設用的是機器名,所以這時候兩個目錄不匹 配了,DBConsole找不到配置倉庫的目錄也就出錯了。
解決方案,
解決方案有兩種,一種是比較正式的
通過emca重建立立repos
命令如下
emca -config dbcontrol db -repos recreate
方法二是自己實驗出來的,並不是一個正式的方法,但是比上一種方法簡單,易於操作。
資訊提示裡找不到一個目錄D:\oracle\product\10.1.0\db_1\oc4j\j2ee \OC4J_DBConsole_localhost_java, 到這個資訊提示的上一層目錄裡一看,可以看到有個類似的目錄, 形如OC4J_DBConsole_janes_java, 這裡janes是我的機器名,把這個目錄copy到目前的目錄下,改成資訊提示裡沒有找到的目錄名,比如 我這裡就改成D:\oracle\product\10.1.0\db_1\oc4j\j2ee \OC4J_DBConsole_localhost_java
同時來到D:\oracle\product\10.1.0\db_1目錄下,可以找到一個名字形如janes_ORCL的目錄,
注意janes_ORCL 這裡的janes是我的機器名,ORCL是我這裡ORacle的SID,你可以根據你的具體情況,來找到類似的目錄, 同樣在當前copy到目前的目錄,並改名為localhost_ORCL.
還有第三方法,不過沒有試過
有出現這樣問題的幫著試試 set ORACLE_HOSTNAME=localhost
然後通過emctl start dbconsole或者服務裡的ORacleDBConsoleXXXX的服務就可以啟動了。