解决oracle关于OEM 中“Enterprise Manager 无法连接到数据库实例”的问题

简介: 前段时间,我的OEM忽然打不开了,上面显示“Enterprise Manager 无法连接到数据库实例”,而下面的提示则是数据库实例已开启,还有代理连接也能连上,但就是打不开OEM。
前段时间,我的OEM忽然打不开了,上面显示“Enterprise Manager 无法连接到数据库实例”,而下面的提示则是数据库实例已开启,还有代理连接也能连上,但就是打不开OEM。
后来,我去网上,找了很多方法,它们不是无效,就是不能正常实行,经过了一周蛋疼的奋战,在一次重新配置DBConsole失败后,我的oracle完全坏掉了,不止是OEM的问题了,很多服务都不见了,再次尝试修复未果后,只好重装了。
然后,就是又过了一段时间,当我再次打开OEM时,它又出现这个问题了,我就发飙了,遂发誓一定要把它解决。这次我总算成功地解决了这个问题了,现把我第二次解决的经历与方法分享与下:
首先是关于网上说的sysman用户的账户问题,当时查到这么一个解决方案,说是OEM打不开是因为该账户被锁定了,于是我尝试着使用这个方法:
1、使用SQL PLUS.
    在DOS模式下运行SQL PLUS.
    SQL> conn
    请输入用户名:  sys as sysdba
    输入密码:
    连接成功
    SQL>desc dba_users                  注意:如果此时提示发现该视图无效。用D:\oracle\product\10.2.0\db_1\RDBMS\ADMINsql.bsq 新建立user_astatus_map , DBA_USERS . 否则会显示如下信息:
 名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------
USERNAME                                  NOT NULL VARCHAR2(30)
USER_ID                                   NOT NULL NUMBER
PASSWORD                                           VARCHAR2(30)
ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
LOCK_DATE                                          DATE
EXPIRY_DATE                                        DATE
DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
CREATED                                   NOT NULL DATE
PROFILE                                   NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
EXTERNAL_NAME                                      VARCHAR2(4000)
SQL> select username,account_status from dba_users where username='SYSMAN' ;
USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SYSMAN                         LOCKED
SQL>alter user sysman account unlock;
    用户已更改。
    此时系统就可以连接到数据库了。
结果发现我的账户果然是被锁定了的,按照该方法进行解锁后,再次打开OEM,还是进不去,然后在sqlplus下查看sysman用户的状态,发现又被锁定了。开始以为是因为没有在管理员权限下运行的原因(以前采用其他办法时,的确碰见过部分原因是这个),于是在管理员模式下继续改办法,无效。而且,我发现,只要每次解锁后,再次打开OEM都会在次被锁上,我就无语了。
只好再次去茫茫网络中搜寻,又被我找到了貌似的答案,由于OEM打开时会尝试使用这些这些用户连接数据库,由于profiles的限制造成锁定,于是以管理 员用户登陆到数据库:
SQL> ALTER PROFILE DEFAULT LIMITfailed_login_attempts UNLIMITED ;
配置文件已更改
然后还是不行,又有说法是密码必须改回初始密码,否则多次登录错误会造成账户被锁定,于是修改sysman密码为初始密码:
SQL> alter user system identified by ***;
用户已更改。
然后还是登不上OEM,唯一的变换就是sysman用户不会再因为登录OEM而被锁定了,每次都是OPEN,可这样我就更不知道该怎么办了。只好放弃这条路,去采取别的办法,然后再网上我又找到另外一种方式:
1、重新配置em

C:\Documents and Settings\Administrator>emca -config dbcontrol db 


EMCA 开始于 2008-12-18 13:55:39
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。

输入以下信息:
数据库 SID:best

已为数据库 XBOMS 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 XBOMS
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]:Y
监听程序端口号:1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令: (如果提示密码不对的话,用alter user SYSMAN identified by xxx 来改)
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------

已指定以下设置

数据库 ORACLE_HOME ................ E:\oracle\product\10.2.0\db_1

数据库主机名 ................ wuhao

监听程序端口号 ................ 1521
数据库 SID ................ best
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............

-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]:Y
2008-12-18 13:57:04 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\XBOMS\em
ca_2008-12-18_01-55-39-下午.log。
2008-12-18 13:57:12 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2008-12-18 13:57:59 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2008-12-18 13:58:39 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2008-12-18 13:58:39 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2008-12-18 13:58:39 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 http://wuhao:5500/em<<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2008-12-18 13:58:39

再次打开成功!
上帝总是希望熊猫能多承受一些苦难,所以理所当然,“再次打开成功” 没有应验在我的电脑上,而且我记得以前用过这种方式,触动错误还是一模一样的:
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 中的日志文件。
  很显然,我的监听器是打开的,很不甘心,于是这次我专门针对这个严重错误去搜索,有很多种说法,有用net manager配置路径的,但我好不容易找到它在哪里,打开后却发现不知道怎么配置,于是换个方案:
 
  
不重建emca,先emca -repos drop删除emca,然后emca -config dbcontrol db重建emca吧。
  看到这个方案就伤心,还记得上一次我的oracle就是被这个方案搞坏的,终于这次没敢尝试,于是继续搜索:
 
  

经过仔细研究发现,在emConfig.log中使用如下hostname:

配置: connectDesc : (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=BlueAeri-PC)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))

但是在listener.ora中是这样的:

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

显然 BlueAeri-PC 是不能访问 localhost的,因此有两个解决方法:

1、单机用户适用:增加操作系统环境变量:ORACLE_HOSTNAME=localhost

2、服务器适用:在listener.ora中增加对BlueAeri-PC或ip地址的侦听

提示,在emConfig.log中仍然会报以下错误,不过不用理会:

配置: 未设置参数 ORACLE_HOSTNAME 的值。

我记得以前找过的许多方法都说是IP问题了,于是兴致勃勃的去找到这两个文件打开一看,又傻眼了,他们都是localhost,我就无语了,最后在抱着试一试的心态下,我给电脑配置了ORACLE_HOSTNAME的环境变量,然后,重新配置em,十多分钟后……竟然配置成功了,接着,我怀着七上八下的心打开浏览器,终于见到了我可爱的登陆界面,尝试登陆也成功了,有时候,幸福就是来的这么突然,在你快要放弃的时候它就突然出现在你眼前。

总结:oracle的服务是很脆弱的,对IP特别敏感,在个人电脑上(因为服务器一般不会随便变更IP地址)这点尤为重要,所以我们在关电脑前最好先把oracle的服务都关了。(其实对于这个问题的解决的麻烦过程,主要还在于对oracle的三层结果不是很清楚,其底层配置命令的用途究竟为何也不甚了解,所以以后如果选择oracle数据库的童鞋一定要首先对其整个结构有了基础的了解,才不会在这些蛋疼的问题上浪费时间,OVER!!!)

目录
相关文章
|
22天前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
22天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
106 61
|
22天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
92 57
|
21天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
27 7
|
21天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
24 6
|
21天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
19 5
|
22天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
11天前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
10天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
25 1
|
12天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
28 4