oracle 10g OEM常规错误(Unknown host specified)解决方法

时间:2022-04-29 05:20:34

重装了笔记本上的oracle,安装完成后,可以正常使用OEM控制台,但是注销后重新登录或者重启系统后登录,或者笔记本使用网络环境发生了变化,都有可能遇到问题。这些遇到问题的解决办法使用过,但是很久没折腾就忘记了,今天把这些问题和解决方法记录在此。 

1、网络环境变化导致无法启动 
这个问题的现象是无法启动OEM。使用命令行如下: 

复制代码代码如下:


C:/Users/Administrator>set ORACLE_SID=TEST 
C:/Users/Administrator>emctl stop dbconsol 
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved. 
http://IP:1158/em/console/aboutApplication 
..... 


这种现象遇到过多次,经常是在你电脑的网络环境(IP地址)发生变化之后,导致在启动的时候oracle会根据你现在的IP地址构造OEM地址,而不是你当初安装的那个IP。注意上面这个地方,http://IP:1158/em。 
针对这个问题,当初我也根据google搜索到的办法重建OEM,但是这种方法还是比较繁琐和漫长,而且往往会遇到莫名其妙的错误。 
我使用最简单的解决办法是修改$ORACLE_HOME/BIN/emctl.bat文件,打开这个文件,在文件开头或者合适位置(比如我的是在42行的setlocal之后)添加如下2行代码: 

复制代码代码如下:


set ORACLE_SID=TEST 
set ORACLE_HOSTNAME=Laidye 


注意,ORACLE_HOSTNAME要设置成你初始安装时候oracle读取和设置的名称,在没有网络环境下安装oem的时候往往就是你的计算机名称,具体可以查看$ORACLE_HOME/HOSTNAME_SID这个文件夹。这样,无论你使用的网络环境如何变化,都可以正常启动OEM了。 

2、登陆后页面显示报错 
2.1、 错误 java.lang.Exception: Exception in sending Request :: null 
这个问题根本原因是时区设置的问题,解决办法是修改配置文件的时区。 
停掉OEM,然后打开$ORACLE_HOME/HOSTNAME_SID/sysman/config/emd.properties,将最后一行 
agentTZRegion=GMT 
改成 
agentTZRegion=Asia/Shanghai 
具体时区名称可以查看$ORACLE_HOME/sysman/admin/supportedtzs.lst或者通过数据查询Select TZNAME From v$timezone_names; 
一般情况下,这样设置完成后重新启动即可。可能还会遇到这错误:数据库错误 Io 异常: Unknown host specified 

2.2、数据库错误 Io 异常: Unknown host specified 
如果是遇到这个问题,那么手动注册配置下新配置的时区参数即可,使用如下命令: 

复制代码代码如下:


set ORACLE_SID=youdbsid 
emctl stop dbconsole 
emctl config agent getTZ 
emctl start dbconsol 
-The End-