重装了笔记本上的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-