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. |
可以看到提示說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的啓動和頁面查看造成影響。
另外如果是集羣環境的話,ORACLE_SID和ORACLE_UNQNAME這兩個環境變量一定要配對,ORACLE_UNQNAME這個變量名是要等於SID而不是當前主機的SID。比如下面這個報錯,就是ORACLE_UNQNAME配置錯誤引起的。
OC4J Configuration issue. /u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_nlojadb1_psucumbi1 not found.
-------------------------------------------------------------------------------------------
創建一個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_Home/install/portlist.ini>
先設置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