【oracle】Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态---个人解决方案

时间:2024-03-04 15:47:43

      最近在学习Oracle,平常喜欢使用EM查看数据库状态,但是在最近突然发现EM连接不上Oracle数据库了,不知道问题出在哪里,只好卸载了重装。但是,在使用了几天以后,又出现了相同的问题,于是下决心将这个问题解决。

image

                                                                                  图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。

image

②重新启动监听服务,以管理员方式启动cmd,执行命令lsnrctl reload即可。如下图:

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已经重新配置完成,重启即可。

image