問題是這樣的,
前些日子由於學習需要得裝 Oracle,
但是我下載的 Oracle 9i R1 在我的 Win7 下死活裝不上,
由於捨不得 Win7 (不想換回 XP),所以給裝了 Oracle 10g R2 ,
但是今天弄到 Oracle 10g 的 EM(企業管理器)時,
這才發現 EM 無法啟用,
http://XiaoZhen-PC:1158/em
這個預設的 EM 始終無法訪問,然後我又查看了服務,
發現我的 dbConsole 這個服務是啟動了的,
所以我認為這不是服務的問題,
但我還是強制使用作業系統命令 emctl start dbconsole
來對企業管理器控制台進程進行啟動,
報錯,說 ORACLE_SID 沒有定義,錯誤提示既然是說沒有定義 ORACLE_SID,
既然如此,那我就來定義我的 ORACLE_SID 吧,
我先找到路徑 D:\oracle\product\10.2.0\db_1\oc4j\j2ee
其中內容包括一個檔案
從上面我可以看出,我的全域資料庫名為 Oracle (這個是在建立資料庫的時候輸入的)
所以我呢也把 ORACLE_SID 設定為這個全域資料庫名,
再在上面的檔案中可以知道,我的機器名為 XiaoZhen-PC
而我設定完 ORACLE_SID 後又提示上面有一個目錄沒有發現,
而我的這個路徑下只存在一個 OC4J_DBConsole_XiaoZhen-PC_Oracle 的路徑
而沒有 OC4J_DBConsole_localhost_Oracle,
所以我再設定 Oracle 的 hostname
然後我在運行作業系統命令 emctl start dbconsole 就可以看到成功了
然後我再訪問 EM ,即 http://XiaoZhen-PC:1158/em ,此時可以成功訪問了,
對上面的解決方案進行一個總結,
Oracle 的 dbConsole 服務啟動了而 EM 卻還是無法訪問的話,
很有可能就是資料庫的 SID 和 hostname 和您的資料庫檔案中定義的不一致,
從而導致無法訪問,
這一問題可以通過修改過 ORACLE_SID 和 ORACLE_HOSTNAME 來解決!!!