最近在學習Oracle,平常喜歡使用EM查看數據庫狀態,但是在最近突然發現EM連接不上Oracle數據庫了,不知道問題出在哪里,只好卸載了重裝。但是,在使用了幾天以后,又出現了相同的問題,於是下決心將這個問題解決。
圖1、出錯界面
網上查找資料,說是這個問題可以通過emca重建資料庫來解決,具體操作如下:
1、先刪除原來的配置:打開SQL PLUS,以sys賬戶登錄Oracle,執行命令
SQL> drop user sysman cascade; //這個命令執行時間較長,耐心等待 用戶已刪除。 SQL> drop role MGMT_USER; 角色已刪除。 SQL> drop user MGMT_VIEW cascade; 用戶已刪除。 SQL> drop public synonym MGMT_TARGET_BLACKOUTS; 同義詞已刪除。 SQL> drop public synonym SETEMVIEWUSERCONTEXT; 同義詞已刪除。2、到這里我們已經刪除了原來的em配置,接下來創建新的配置。這里需要注意,下面的步驟是在DOS環境下執行的,找到cmd命令框,進行下面的操作:
(這一部分代碼由於未作保存,從網上找了一個除文件路徑外均相同的代碼,不用理會)
C:\Users\zhou>emca -repos recreate EMCA 開始於 2011-8-3 3:04:32 EM Configuration Assistant, 11.2.0.0.2 正式版 版權所有 (c) 2003, 2005, Oracle。保留所有權利。 輸入以下信息: 數據庫 SID: 數據庫 SID: 數據庫 SID: 數據庫 SID: orcl 監聽程序端口號: 1521 SYS 用戶的口令: SYSMAN 用戶的口令: SYSMAN 用戶的口令: 是否繼續? [是(Y)/否(N)]: y 2011-8-3 3:05:05 oracle.sysman.emcp.EMConfig perform 信息: 正在將此操作記錄到 D:\app\zhou\cfgtoollogs\emca\orcl\emca_2011_08_03_03_04 _31.log。 2011-8-3 3:05:05 oracle.sysman.emcp.EMConfig perform 嚴重: 監聽程序未啟動或數據庫服務未注冊到該監聽程序。啟動該監聽程序並注冊數據庫服 務, 然后重新運行 EM Configuration Assistant。 有關詳細資料, 請參閱 D:\app\zhou\cfgtoollogs\emca\orcl\emca_2011_08_03_03_04_31. log 中的日志文件。 無法完成配置。 有關詳細資料, 請參閱 D:\app\zhou\cfgtoollogs\emca\orcl\emca_2011_ 08_03_03_04_31.log 中的日志文件
這個問題困擾了我很久,最后解決如下:
[①增加系統環境變量:ORACLE_HOSTNAME=localhost。這一步有的博客上有介紹,有的沒有,我添加了該系統環境變量。到底要不要添加,以后在做驗證,這里不做討論]
①打開Oracle中的net manager里面的監聽目錄,在數據庫服務中添加如下圖的信息,然后點擊:文件->保存網絡配置。關閉net manager。
②重新啟動監聽服務,以管理員方式啟動cmd,執行命令lsnrctl reload即可。如下圖:
3、上面的問題解決了,接下來重新配置em。
C:\WINDOWS\system32>emca -repos recreate EMCA 開始於 2016-12-11 16:03:44 EM Configuration Assistant, 11.2.0.0.2 正式版 版權所有 (c) 2003, 2005, Oracle。保留所有權利。 輸入以下信息: 數據庫 SID: orcl 監聽程序端口號: 1521 SYS 用戶的口令: SYSMAN 用戶的口令: 是否繼續? [是(Y)/否(N)]: y 2016-12-11 16:04:10 oracle.sysman.emcp.EMConfig perform 信息: 正在將此操作記錄到 e:\app\admin\cfgtoollogs\emca\orcl\emca_2016_12_11_16_03_44.log。 2016-12-11 16:04:10 oracle.sysman.emcp.EMReposConfig invoke 信息: 正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)... 2016-12-11 16:04:11 oracle.sysman.emcp.EMReposConfig invoke 信息: 已成功刪除資料檔案庫 2016-12-11 16:04:11 oracle.sysman.emcp.EMReposConfig createRepository 信息: 正在創建 EM 資料檔案庫 (此操作可能需要一段時間)... 2016-12-11 16:07:21 oracle.sysman.emcp.EMReposConfig invoke 信息: 已成功創建資料檔案庫 已成功完成 Enterprise Manager 的配置 EMCA 結束於 2016-12-11 16:07:21 C:\WINDOWS\system32>emca -config dbcontrol db EMCA 開始於 2016-12-11 16:10:44 EM Configuration Assistant, 11.2.0.0.2 正式版 版權所有 (c) 2003, 2005, Oracle。保留所有權利。 輸入以下信息: 數據庫 SID: orcl 已為數據庫 orcl 配置了 Database Control 您已選擇配置 Database Control, 以便管理數據庫 orcl 此操作將移去現有配置和默認設置, 並重新執行配置 是否繼續? [是(Y)/否(N)]: y 監聽程序 ORACLE_HOME [ e:\app\admin\product\11.2.0\dbhome_1 ]: SYS 用戶的口令: SYS 用戶的口令: DBSNMP 用戶的口令: SYSMAN 用戶的口令: 通知的電子郵件地址 (可選): 通知的發件 (SMTP) 服務器 (可選): ----------------------------------------------------------------- 已指定以下設置 數據庫 ORACLE_HOME ................ e:\app\admin\product\11.2.0\dbhome_1 本地主機名 ................ localhost 監聽程序 ORACLE_HOME ................ e:\app\admin\product\11.2.0\dbhome_1 監聽程序端口號 ................ 1521 數據庫 SID ................ orcl 通知的電子郵件地址 ............... 通知的發件 (SMTP) 服務器 ............... ----------------------------------------------------------------- 是否繼續? [是(Y)/否(N)]: y 2016-12-11 16:12:26 oracle.sysman.emcp.EMConfig perform 信息: 正在將此操作記錄到 e:\app\admin\cfgtoollogs\emca\orcl\emca_2016_12_11_16_10_44.log。 2016-12-11 16:12:30 oracle.sysman.emcp.util.DBControlUtil stopOMS 信息: 正在停止 Database Control (此操作可能需要一段時間)... 2016-12-11 16:12:52 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository 信息: 正在將配置數據上載到 EM 資料檔案庫 (此操作可能需要一段時間)... 2016-12-11 16:13:14 oracle.sysman.emcp.EMReposConfig invoke 信息: 已成功上載配置數據 2016-12-11 16:13:20 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib 信息: 軟件庫已配置成功。 2016-12-11 16:13:20 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary 信息: 正在部署預配檔案... 2016-12-11 16:13:36 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary 信息: 預配檔案部署成功。 2016-12-11 16:13:36 oracle.sysman.emcp.util.DBControlUtil secureDBConsole 信息: 正在保護 Database Control (此操作可能需要一段時間)... 2016-12-11 16:13:40 oracle.sysman.emcp.util.DBControlUtil secureDBConsole 信息: 已成功保護 Database Control。 2016-12-11 16:13:40 oracle.sysman.emcp.util.DBControlUtil startOMS 信息: 正在啟動 Database Control (此操作可能需要一段時間)... 2016-12-11 16:14:16 oracle.sysman.emcp.EMDBPostConfig performConfiguration 信息: 已成功啟動 Database Control 2016-12-11 16:14:16 oracle.sysman.emcp.EMDBPostConfig performConfiguration 信息: >>>>>>>>>>> Database Control URL 為 https://localhost:1158/em <<<<<<<<<<< 2016-12-11 16:14:17 oracle.sysman.emcp.EMDBPostConfig invoke 警告: ************************ WARNING ************************ 管理資料檔案庫已置於安全模式下, 在此模式下將對 Enterprise Manager 數據進行加密。加密密鑰已放置在文件 e:/app/admin/product/11.2.0/dbhome_1/localhost_orcl/sysman/config/emkey.ora 中。請務必備份此文件, 因為如果此文件丟失, 則加密數據將不可用。 *********************************************************** 已成功完成 Enterprise Manager 的配置 EMCA 結束於 2016-12-11 16:14:17
到此,em已經重新配置完成,重啟即可。