手工配置OEM和Enterprise Manager無法連線資料庫例項

mengzhaoliang發表於2009-02-20

/*
*時間:2009-01-20
*環境:Windows XP   Oracle10g
*手工配置OEM(Oracle Enterprise Manager Database Control)和Enterprise Manager無法連線資料庫例項
*/

1、OEM中的程式不能啟動
在“控制皮膚”——》“管理工具”——》“服務”中的“OracleDBConsoleORCL”程式不能啟動

2、手工配置DBControl
如果系統的環境變數沒有配置好,需要到$Oracle_home\bin\目錄下,emca.bat檔案為該手工配置OEM的命令

C:\Documents and Settings\mengzhaoliang>emca -repos create

EMCA 開始於 2009-2-20 10:08:02
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:
資料庫 SID: ORCL
監聽程式埠號: 1521
SYS 使用者的口令:
SYSMAN 使用者的口令:

是否繼續? [yes(Y)/no(N)]: y
2009-2-20 10:08:32 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2009-02-20_10-08-02-上午.log。
2009-2-20 10:08:33 oracle.sysman.emcp.EMReposConfig createRepository
資訊: 正在建立 EM 資料檔案庫 (此操作可能需要一段時間)...
2009-2-20 10:08:33 oracle.sysman.emcp.EMReposConfig invoke
嚴重: 建立資料檔案庫時出錯
2009-2-20 10:08:33 oracle.sysman.emcp.EMReposConfig invoke
資訊: 有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\e
mca_repos_create_.log 中的日誌檔案。
2009-2-20 10:08:33 oracle.sysman.emcp.EMConfig perform
嚴重: 建立資料檔案庫時出錯
有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_20
09-02-20_10-08-02-上午.log 中的日誌檔案。
無法完成配置。 有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\em
ca\orcl\emca_2009-02-20_10-08-02-上午.log 中的日誌檔案。

C:\Documents and Settings\mengzhaoliang>

3、檢視上面提示的日誌
原來發現sysman使用者和一些角色已經存在,導致不能成功!
如:
第 1 行出現錯誤:
ORA-20001: SYSMAN already exists..
ORA-06512: 在 line 17

4、刪除em資料庫,(檢視emca格式的幫助命令為emca -h)
C:\Documents and Settings\mengzhaoliang>emca -repos drop

EMCA 開始於 2009-2-20 10:41:18
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:
資料庫 SID: ORCL
監聽程式埠號: 1521
SYS 使用者的口令:
SYSMAN 使用者的口令:
SYSMAN 使用者的口令:
是否繼續? [yes(Y)/no(N)]: yes
2009-2-20 10:41:33 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2009-02-20_10-41-18-上午.log。
2009-2-20 10:41:35 oracle.sysman.emcp.EMReposConfig dropRepository
資訊: 正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)...
2009-2-20 10:41:41 oracle.sysman.emcp.EMReposConfig invoke
資訊: 已成功刪除資料檔案庫
已成功完成 Enterprise Manager 的配置
EMCA 結束於 2009-2-20 10:41:41

5、重新建立em資料庫
C:\Documents and Settings\mengzhaoliang>emca -repos create
EMCA 開始於 2009-2-20 10:43:20
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:
資料庫 SID: ORCL
監聽程式埠號: 1521
SYS 使用者的口令:
SYSMAN 使用者的口令:
SYSMAN 使用者的口令:
是否繼續? [yes(Y)/no(N)]: y
2009-2-20 10:43:32 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2009-02-20_10-43-20-上午.log。
2009-2-20 10:43:33 oracle.sysman.emcp.EMReposConfig createRepository
資訊: 正在建立 EM 資料檔案庫 (此操作可能需要一段時間)...
2009-2-20 10:43:33 oracle.sysman.emcp.EMReposConfig invoke
嚴重: 建立資料檔案庫時出錯
2009-2-20 10:43:33 oracle.sysman.emcp.EMReposConfig invoke
資訊: 有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\e
mca_repos_create_.log 中的日誌檔案。
2009-2-20 10:43:33 oracle.sysman.emcp.EMConfig perform
嚴重: 建立資料檔案庫時出錯
有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emca_20
09-02-20_10-43-20-上午.log 中的日誌檔案。
無法完成配置。 有關詳細資料, 請參閱 D:\oracle\product\10.2.0\db_1\cfgtoollogs\em
ca\orcl\emca_2009-02-20_10-43-20-上午.log 中的日誌檔案。

日誌錯誤提示:
[20-02-2009 10:41:41] Could not connect to SYS/(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.88.122.141)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl))): ORA-12541: TNS: 無監聽程式 (DBD ERROR: OCIServerAttach)

6、檢視監聽器是否啟動

C:\Documents and Settings\mengzhaoliang>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-2月 -2009 10:4
9:26

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動日期                  20-2月 -2009 09:08:36
正常執行時間              0 天 1 小時 40 分 52 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案          D:\oracle\product\10.2.0\db_1\network\log\listener.log

監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1568)))
服務摘要..
服務 "orcl" 包含 1 個例程。
  例程 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功

原來監聽的埠為1568,應該是1521的,把listener.ora中的埠改成1521,然後停止監聽器,再啟動

C:\Documents and Settings\mengzhaoliang>lsnrctl stop

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-2月 -2009 11:0
2:39

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
命令執行成功

C:\Documents and Settings\mengzhaoliang>lsnrctl start

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-2月 -2009 11:0
2:49

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

啟動tnslsnr: 請稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統引數檔案為D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動日期                  20-2月 -2009 11:02:50
正常執行時間              0 天 0 小時 0 分 1 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案          D:\oracle\product\10.2.0\db_1\network\log\listener.log

監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服務摘要..
服務 "orcl" 包含 1 個例程。
  例程 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功


7、手動刪除刪除資料檔案庫
如果刪除EM資料檔案庫不徹底,執行重新建立資料檔案庫也不成功。
一般是SYSMAN使用者及其物件沒有刪除乾淨,多次重新建立資料庫都不能成功。
進入資料庫刪除:

C:\Documents and Settings\mengzhaoliang>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 2月 20 12:40:36 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> DROP public synonym SETEMVIEWUSERCONTEXT;

同義詞已刪除。

SQL> DROP PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;

同義詞已刪除。

SQL> drop role MGMT_USER;

角色已刪除。

SQL> DROP USER MGMT_VIEW CASCADE;

使用者已刪除。

SQL> DROP USER SYSMAN CASCADE;

使用者已刪除。

然後刪除資料庫的相關資訊:
C:\Documents and Settings\mengzhaoliang>emca -deconfig dbcontrol db -repos drop

EMCA 開始於 2009-2-20 12:43:37
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:
資料庫 SID: orcl
監聽程式埠號: 1521
SYS 使用者的口令:
SYSMAN 使用者的口令:

是否繼續? [yes(Y)/no(N)]: y
2009-2-20 12:43:50 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2009-02-20_12-43-37-下午.log。
2009-2-20 12:43:52 oracle.sysman.emcp.util.DBControlUtil stopOMS
資訊: 正在停止 Database Control (此操作可能需要一段時間)...
2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig stopDBMSJobs
警告: 初始化 SQL 連線時出錯。無法執行 SQL 操作
2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig invoke
警告: 無法移去 DBMS 作業。
2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig dropRepository
資訊: 正在刪除 EM 資料檔案庫 (此操作可能需要一段時間)...
2009-2-20 12:43:58 oracle.sysman.emcp.EMReposConfig invoke
資訊: 已成功刪除資料檔案庫
已成功完成 Enterprise Manager 的配置
EMCA 結束於 2009-2-20 12:43:58


刪除之後在“程式”中就看不到OracleDBConsoleORCL的程式了


8、重新建立em
C:\Documents and Settings\mengzhaoliang>emca -config dbcontrol db -repos create

EMCA 開始於 2009-2-20 12:49:40
EM Configuration Assistant 10.2.0.1.0 正式版
版權所有 (c) 2003, 2005, Oracle。保留所有權利。

輸入以下資訊:
資料庫 SID: orcl
監聽程式埠號: 1521
SYS 使用者的口令:
DBSNMP 使用者的口令:
SYSMAN 使用者的口令:
通知的電子郵件地址 (可選):
通知的發件 (SMTP) 伺服器 (可選):
-----------------------------------------------------------------

已指定以下設定

資料庫 ORACLE_HOME ................ D:\oracle\product\10.2.0\db_1

資料庫主機名 ................ 10.88.122.141
監聽程式埠號 ................ 1521
資料庫 SID ................ orcl
通知的電子郵件地址 ...............
通知的發件 (SMTP) 伺服器 ...............

-----------------------------------------------------------------
是否繼續? [yes(Y)/no(N)]: y
2009-2-20 12:51:08 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2009-02-20_12-49-40-下午.log。
2009-2-20 12:51:12 oracle.sysman.emcp.EMReposConfig createRepository
資訊: 正在建立 EM 資料檔案庫 (此操作可能需要一段時間)...
2009-2-20 12:54:33 oracle.sysman.emcp.EMReposConfig invoke
資訊: 已成功建立資料檔案庫
2009-2-20 12:54:52 oracle.sysman.emcp.util.DBControlUtil startOMS
資訊: 正在啟動 Database Control (此操作可能需要一段時間)...
2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
資訊: 已成功啟動 Database Control
2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 無法建立 Database Control 快捷方式
2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
資訊: >>>>>>>>>>> Database Control URL 為 <<<<<<<<<
<<
已成功完成 Enterprise Manager 的配置
EMCA 結束於 2009-2-20 12:56:02

在“程式”中就多了OracleDBConsoleORCL的程式,發現狀態是已經啟動

9開啟IE,
OEM的介面是出來了,但提示“Enterprise Manager無法連線資料庫例項” (重新啟動oem也是一樣)

檢視oem狀態
C:\Documents and Settings\mengzhaoliang>emctl status dbconsole   (啟動為emctl start dbconsole 關閉為emctl stop dbconsole)
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.

Oracle Enterprise Manager 10g is running.
------------------------------------------------------------------
Logs are generated in directory D:\oracle\product\10.2.0\db_1/10.88.122.141_ORCL
/sysman/log


10、檢視D:\oracle\product\10.2.0\db_1/10.88.122.141_ORCL/sysman/log/emoms.log日誌

2009-02-20 12:55:39,984 [Orion Launcher] WARN  jdbc.ConnectionCache _getConnection.303 - Got a fatal exeption when getting a connection; Error code = 17002; Cleaning up cache and retrying
2009-02-20 12:55:40,000 [Orion Launcher] WARN  jdbc.ConnectionCache _getConnection.306 - Io 異常: The Network Adapter could not establish the connection
java.sql.SQLException: Io 異常: The Network Adapter could not establish the connection
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:254)
 at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
 at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:493)
 at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:164)
 at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:767)
 at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:324)
 at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:114)
 at oracle.jdbc.pool.OracleConnectionCacheImpl.getNewPoolOrXAConnection(OracleConnectionCacheImpl.java:694)
 at oracle.jdbc.pool.OracleConnectionCacheImpl.getPooledConnection(OracleConnectionCacheImpl.java:540)
 at oracle.jdbc.pool.OracleConnectionCacheImpl.getConnection(OracleConnectionCacheImpl.java:346)
 at oracle.jdbc.pool.OracleConnectionCacheImpl.getConnection(OracleConnectionCacheImpl.java:324)
 at oracle.sysman.util.jdbc.ConnectionCache._getConnection(ConnectionCache.java:296)
 at oracle.sysman.util.jdbc.ConnectionCache.getUnwrappedConnection(ConnectionCache.java:423)
 at oracle.sysman.emSDK.svc.conn.FGAConnectionCache.getFGAConnection(FGAConnectionCache.java:156)
 at oracle.sysman.emSDK.svc.conn.ConnectionService.getPrivateConnection(ConnectionService.java:605)
 at oracle.sysman.emSDK.svc.conn.ConnectionService.getRepositoryVersionAndMode(ConnectionService.java:368)
 at oracle.sysman.emSDK.svc.conn.ConnectionService.verifyRepositoryEx(ConnectionService.java:395)
 at oracle.sysman.emSDK.svc.conn.ConnectionService.verifyRepository(ConnectionService.java:450)
 at oracle.sysman.eml.app.ContextInitializer.contextInitialized(ContextInitializer.java:174)
 at com.evermind.server.http.HttpApplication.initDynamic(HttpApplication.java:807)
 at com.evermind.server.http.HttpApplication.(HttpApplication.java:533)
 at com.evermind.server.Application.getHttpApplication(Application.java:886)
 at com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java:688)
 at com.evermind.server.http.HttpSite.initApplications(HttpSite.java:570)
 at com.evermind.server.http.HttpSite.setConfig(HttpSite.java:263)
 at com.evermind.server.http.HttpServer.setSites(HttpServer.java:259)
 at com.evermind.server.http.HttpServer.setConfig(HttpServer.java:160)
 at com.evermind.server.ApplicationServer.initializeHttp(ApplicationServer.java:2330)
 at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1503)
 at com.evermind.server.ApplicationServerLauncher.run(ApplicationServerLauncher.java:93)
 at java.lang.Thread.run(Thread.java:534)


11  修改D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora中的ip,停止、重啟監聽器就好了
因為配置oem的主機為10.88.122.141,而監聽器listener.ora中的主機為127.0.0.1,所有oem識別不到監聽器造出的。

把D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora中的
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

  改成
  LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = orcl))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.88.122.141)(PORT = 1521))
    )
  )

12 停止、啟動監聽器
C:\Documents and Settings\mengzhaoliang>lsnrctl stop

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-2月 -2009 13:3
6:21

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
命令執行成功

C:\Documents and Settings\mengzhaoliang>lsnrctl start

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-2月 -2009 13:3
6:30

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

啟動tnslsnr: 請稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統引數檔案為D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.88.122.141)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=orcl)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動日期                  20-2月 -2009 13:36:31
正常執行時間              0 天 0 小時 0 分 1 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程式引數檔案          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案          D:\oracle\product\10.2.0\db_1\network\log\listener.log

監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\orclipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.88.122.141)(PORT=1521)))
服務摘要..
服務 "orcl" 包含 1 個例程。
  例程 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功

13、再次開啟IE, ,就出現了熟悉的登陸介面了
用sys使用者,選擇sysdba 登入就ok

 

備註:
1、tnsnames.ora檔案
$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora檔案:用於“查詢”網路上的一個伺服器。

2、listener.ora
$ORACLE_HOME\NETWORK\ADMIN\listener.ora檔案:用於啟動網路監聽器。

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

相關文章