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