OEM启动失败的恢复 (未打补丁Patch 8350262)


场景:

客户说OEM忽然不能用了。因为应用程序链接了OEM的部分页面,必须马上恢复。

现象:

登陆客户服务器,执行emctl status dbconsole,显示未启动。尝试启动报错。

解决步骤:

1)  启动dbconsole,等了好长时间,提示不成功。部分日志如下:       

  1. 2011-6-3 18:44:06 Oracle.sysman.emcp.util.DBControlUtil startOMS 
  2. 信息: 正在启动 Database Control (此操作可能需要一段时间)... 
  3. 2011-6-3 18:44:06 oracle.sysman.emcp.util.PlatformInterface serviceCommand 
  4. 配置: cmdType: 0 
  5. 2011-6-3 18:44:06 oracle.sysman.emcp.util.PlatformInterface serviceCommand 
  6. 配置: Starting Windows service...OracleDBConsoleprotect 
  7. 2011-6-3 18:44:06 oracle.sysman.emcp.util.PlatformInterface serviceCommand 
  8. 配置: Waiting for service 'OracleDBConsoleprotect' to fully start 
  9. 2011-6-3 18:44:16 oracle.sysman.emcp.util.PlatformInterface serviceCommand 
  10. 配置: Waiting for service 'OracleDBConsoleprotect' to fully start 
  11. 2011-6-3 18:44:26 oracle.sysman.emcp.util.PlatformInterface serviceCommand 
  12. 配置: Waiting for service 'OracleDBConsoleprotect' to fully start 

2)  以为是修改了IP之类的,确认网络配置无问题后,重建资料库及数据库控制组

结果还是提示上面的错误,OEM任然启动不起来。

后来将主机名,换成127.0.0.1后,重新创建资料库及数据库控制组。仍然启动不起来。

一晃2小时过去了.......

3)  google一番后,发现极可能是bug,10.2.0.4上必须打个补丁,Patch 8350262 。 下载补丁---------打补丁

4) 重建资料库,又提示错误了:

SYSMAN already exists........

资料库能删除,但创建就报错......这个纠结。

删除数据库上部分对象:

  1. SQL> DROP public synonym SETEMVIEWUSERCONTEXT; 
  2.  
  3. 同义词已删除。 
  4.  
  5. SQL> DROP PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS; 
  6.  
  7. 同义词已删除。 
  8.  
  9. SQL> drop role MGMT_USER; 
  10.  
  11. 角色已删除。 
  12.  
  13. SQL> DROP USER MGMT_VIEW CASCADE
  14.  
  15. 用户已删除。 
  16.  
  17. SQL> DROP USER SYSMAN CASCADE

再次尝试创建资料库,终于好了。

5)  创建数据库控制组,又报错了......

按提示操作,提示不能连接到数据库实例。

6)  进入OEM,提示数据库实例及监听都没启动,但实例及监听明明好好的。

忽然记起,是不是把tnsname.ora和listener.ora中主机名改成了127.0.0.1引起的。原样修改回去。关闭OEM,重启监听,重启OEM....

终于一切正常了。

7) 按照上面截图提示,修改SYSMAN密码后,果断收工.....

总结:

平时没事多看看oracle的bug,总是好的,省时、省心、省事;

使用OEM,尽量不要去修改主机的IP地址;

多多查看oracle操作日志。

相关内容