OEM (Oracle Enterprise Manager) 控制檯無法啟動 解決心得體會

lnwxzyp發表於2009-10-18
        不久前重灌了作業系統並重新安裝了oracle,剛開始安裝好之後
OEM(Oracle Enterprise Manager)可以正常開啟在開啟OEM的網頁控制檯,實際上很多人也都會遇到在剛安裝好的時候可以開啟,但是在之後(可能是重啟了電腦或者是隔了幾天)可能就會出現無法開啟網頁控制檯的情況。 今天我也遇到了無法開啟的情況,在經過一番摸索之後恍然大悟。
首先用命令方式開啟控制檯
C:\Documents and Settings\Administrator>set oracle_sid=demo

C:\Documents and Settings\Administrator>emctl start dbconsole   
OC4J Configuration issue. D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole

_localhost_demo not found.

C:\Documents and Settings\Administrator>emctl status
EM Configuration issue. D:\oracle\product\10.2.0\db_1/localhost_demo not found.



    


可以看到提示說OC4J_DBConsole _localhost_demo not found. 
進入相關目錄檢視,發現的是一個以機器名稱+ORACLE_SID的資料夾,
D:\oracle\product\10.2.0\db_1\oc4j\j2ee\OC4J_DBConsole_informat-815891_demo
而並沒有OC4J_DBConsole _localhost_demo這個名稱的資料夾,同時檢視狀態當中提示的檔案路徑,我這裡只有informat-815891_demo,informat-815891是我的計算機名稱,demo是我安裝時設定的oracle的SID,並沒有localhost_demo的資料夾,就是因為如此造成控制檯無法開啟,可為什麼OEM會選擇以localhost來作為他預設的路徑?而剛開始安裝好的時候,沒有這種情況呢? 

這個問題先暫時放一放,我先給出我的解決辦法:首先新增了一個虛擬網路卡

控制皮膚→新增硬體→選擇(是,我已經連線了此硬體)→新增新的硬體裝置→安裝我手動從列表選擇的硬體(高階)→網路介面卡→Microsoft→Microsoft Loopback Adapter     
安裝好了虛擬網路卡,手動指定IP地址: 10.10.10.1  子網掩碼 255.255.255.0  預設閘道器 10.10.10.0
然後開始→執行 輸入 system32 這樣快捷的開啟system32資料夾,找到drivers\etc\hosts檔案,以文字檔案開啟後,進行修改
10.10.10.1       localhost

#127.0.0.1       localhost

將127遮蔽掉或者刪除掉也可以, 並且將localhost改成虛擬網路卡的IP地址,儲存,再次以命令列形式開啟OEM控制檯
C:\Documents and Settings\Administrator>emctl start dbconsole
OC4J Configuration issue.
D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_10.10.10.1_demo not found.
這次就提示一個新的資料夾名稱不存在了,這個時候我再次修改了hosts檔案
10.10.10.1       informat-815891
#127.0.0.1       localhost
用機器名稱替換掉localhost,然後再次開啟OEM控制檯
C:\Documents and Settings\Administrator>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://informat-815891:1158/em/console/aboutApplicationStarting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoledemo
服務正在啟動 ...................
OracleDBConsoledemo 服務已經啟動成功。
這個時候想必大家都清楚了oracle OEM是通過這個hosts檔案來確定檔案的名稱,那麼有的人安裝好的oracle裡面的資料夾是localhost+SID,有的是machine+SID,這又是什麼原因呢? 在這裡要告訴大家一個前提OEM控制檯無法啟動是由於hosts錯誤的指引了Oracle OEM,但是hosts為什麼會錯誤的指引oracle OEM呢? 就是因為你在安裝的時候的環境和當前的環境發生了變化造成的,假如你安裝的時候沒有網路環境,完成之後OEM的資料夾名稱就是localhost+SID,而如果有網路環境的話則會是machine+SID的檔名稱,而之後網路環境發生了變化,則出現了無法啟動,當然也就無法開啟OEM控制檯的頁面了,我這裡使用了虛擬的網路卡 並且在hosts裡面指定了虛擬的地址,這樣一來不管我的網路是否連線都不會對OEM的啟動和頁面檢視造成影響。

the end.
後記:windows 7下要想建立一個Microsoft Loopback Adapter用xp下的方法已經不行了,可以改用在 開始=>執行中輸入“hdwwiz.exe”來執行新增嚮導。
附 OEM 的命令列語句:

建立一個EM資料庫
emca -repos create

重建一個EM資料庫
emca -repos recreate

刪除一個EM資料庫
emca -repos drop

配置資料庫的 Database Control
emca -config dbcontrol db

刪除資料庫的 Database Control配置
emca -deconfig dbcontrol db

重新配置db control的埠,預設埠在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
注:檢視埠號可查如下路徑。

先設定ORACLE_SID環境變數後,啟動EM console服務
emctl start dbconsole

先設定ORACLE_SID環境變數後,停止EM console服務
emctl stop dbconsole

先設定ORACLE_SID環境變數後,檢視EM console服務的狀態
emctl status dbconsole

配置dbconsole的步驟
emca -repos create
emca -config dbcontrol db
emctl start dbconsole

重新配置dbconsole的步驟
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole

 

例如emca -config dbcontrol db 可以解決oem頁面上出現的如下錯誤
OEM - java.lang.Exception: Exception in sending Request :: null
以及以下錯誤
{at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest_(EMDClient.java:1402)
at oracle.sysman.emSDK.emd.comm.EMDClient.getResponseForRequest(EMDClient.java:1196)
at oracle.sysman.emSDK.emd.comm.EMDClient.getMetrics(EMDClient.java:637)
at oracle.sysman.emo.perf.metric.rt.DbHomeTab._getAllData(DbHomeTab.java:324)
at oracle.sysman.emo.perf.metric.rt.DbHomeTab.getData(DbHomeTab.java:139)
at oracle.sysman.emo.perf.metric.eng.MetricCached.collectCachedData(MetricCached.java:402)
at oracle.sysman.emo.perf.metric.eng.MetricCollectorThread._collectCachedData(MetricCollectorThread.java:596)
at oracle.sysman.emo.perf.metric.eng.MetricCollectorThread.run(MetricCollectorThread.java:320)
at java.lang.Thread.run(Thread.java:534)}:
C:\Windows\system32>emca -config dbcontrol db
EMCA 開始於 2011-8-9 20:40:00
EM Configuration Assistant, 10.2.0.5.0 正式版
版權所有 (c) 2003, 2009, Oracle。保留所有權利。
輸入以下資訊:
資料庫 SID: demo
已為資料庫 demo 配置了 Database Control
您已選擇配置 Database Control, 以便管理資料庫 demo
此操作將移去現有配置和預設設定, 並重新執行配置
是否繼續? [是(Y)/否(N)]: y
監聽程式埠號: 1521
SYS 使用者的口令:
DBSNMP 使用者的口令:
SYSMAN 使用者的口令:
SYSMAN 使用者的口令:
通知的電子郵件地址 (可選):
通知的發件 (SMTP) 伺服器 (可選):
-----------------------------------------------------------------
已指定以下設定資料庫
ORACLE_HOME ................ D:\oracle\product\10.2.0\db_1
Local hostname ................ aa123-PC
監聽程式埠號 ................ 1521
資料庫 SID ................ demo
通知的電子郵件地址 ...............
通知的發件 (SMTP) 伺服器 ...............
-----------------------------------------------------------------
是否繼續? [是(Y)/否(N)]: y
2011-8-9 20:40:58 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\demo\emc
a_2011-08-09_08-39-59-下午.log。
2011-8-9 20:41:09 oracle.sysman.emcp.util.DBControlUtil stopOMS
資訊: 正在停止 Database Control (此操作可能需要一段時間)...
2011-8-9 20:41:53 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
資訊: 正在保護 Database Control (此操作可能需要一段時間)...
2011-8-9 20:42:11 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
資訊: 已成功保護 Database Control。
2011-8-9 20:42:11 oracle.sysman.emcp.util.DBControlUtil startOMS
資訊: 正在啟動 Database Control (此操作可能需要一段時間)...
2011-8-9 20:42:51 oracle.sysman.emcp.EMDBPostConfig performConfiguration
資訊: 已成功啟動 Database Control
2011-8-9 20:42:51 oracle.sysman.emcp.EMDBPostConfig performConfiguration
資訊: >>>>>>>>>>> Database Control URL 為 https://aa123-PC:1158/em <<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 結束於 2011-8-9 20:42:51
 
 
 
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-616809/,如需轉載,請註明出處,否則將追究法律責任。

相關文章