ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 手工配置OEM和Enterprise Manager无法连接数据库实例

手工配置OEM和Enterprise Manager无法连接数据库实例

原创 Linux操作系统 作者:mengzhaoliang 时间:2009-02-20 13:49:55 0 删除 编辑

/*
*时间: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 为 http://10.88.122.141:5502/em <<<<<<<<<
<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2009-2-20 12:56:02

在“程序”中就多了OracleDBConsoleORCL的程序,发现状态是已经启动

9打开IE,http://10.88.122.141:5502/em
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.
http://10.88.122.141:5502/em/console/aboutApplication
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,http://10.88.122.141:5502/em/ ,就出现了熟悉的登陆界面了
用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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2927128