Enterprise Manager以下簡稱em,Database Configuration Assistant簡稱DBCA。
病症
監聽程序未啟動或數據庫服務未注冊到該監聽程序。啟動該監聽程序並注冊數據庫服務, 然后重新運行 EM Configuration Assistant。
有關詳細資料, 請參閱 g:\app\LIU\cfgtoollogs\dbca\BU\emConfig.log 中的日志文件。
易患機群
- X64位操作系統,其中win7更為常見;
- Oracle11g,但Oracle 10g偶爾也會發生。
臨床表現
- 開始菜單中Oracle目錄下無DataBase Control-的em鏈接。
- 即使在瀏覽器上輸入https://computerName:5500/em 也無法進入。
- 偶爾伴有The Network Adapter could not establish the connection的錯誤。
病因分析
- 這是部分Oracle11g或10g存在一個bug,需要8350262補丁,更新SSL證書。因為證書過期或者損壞導致在安裝過程中殺毒軟件會默認將其攔截,引起OracleDBConsole服務無法安裝,em失敗。
- TNSLSNR存在問題,致使無法正常運行。
疾病治療
- 對於防火牆是否會攔截em的安裝,我控制變量做了多次測試,發現原因不在防火牆,在於殺毒軟件。我自己使用的是金山毒霸,是默認開機自起的,測試發現,只要開啟毒霸,em一定安裝失敗。但在毒霸的攔截日志里卻是看你不到的,其他殺毒軟件應該同理。不過殺毒軟件攔截安裝也是合理的,問題不在他們,在於Oracle。
我們安裝的時候大多數不是直接從官網下載,而是拷貝版本,因為時間的原因造成的SSL證書過期或者其他原因導致證書損壞而導致這種情況的發生也是在所難免。
那如何解決呢?如果你是商業版本,有許可證,那么你就可以使用metalink賬號下載最新的補丁程序,如8350262等,進行更新證書,重置em安裝。那如果你只是用來學習或者開發沒有許可證,那就關掉殺毒軟件以及所涉及的服務,重新使用DBCA創建數據庫。 - 有時候上面的方法就可以解決你的問題,但是有些情況確實不行的。如你的TNSListener確實存在問題,啟動過程中存在問題或者看似已經啟動實則存在問題,對於這種情況,打開{oracle_home}\NETWORK\ADMIN中的listener.ora,檢查是否正確,我給出標准的listener.ora,你可以對照檢查下:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = g:\app\LIU\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:g:\app\LIU\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =@computerName)(PORT = @port)) ) ) 其中@computerName是你的計算機名,@port是你的監聽端口一般為1521,多個數據庫時就是自己定義的端口值。另外我的數據庫在g:\盤,根據你的安裝位置自行修改。完成后lsnrctl stop,lsnrctl start重啟監聽,再進行重建數據庫,注意殺毒軟件。 - 不得不說em確實很脆弱,很多原因都會造成em安裝失敗,大多數網上提供的重建em資料庫等都是在SSL證書正常的前提的情況下進行的,所以很多人采用重建em的方式並不奏效。
后話
在重建數據庫時注意清理刪掉的數據庫的殘留,如果服務還存在就使用sc命令刪掉。
對於em的安裝問題,這或許只是針對一種情況的解決方式,其他情況希望大家補充。
證書錯誤時ie可能無法訪問,建議使用chrome或者firefox。
創建數據庫時數據庫名最好不要使用符號,建議只使用字母或數字的組合。

