欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-05 16:52:16
重装了笔记本上的oracle,安装完成后,可以正常使用oem控制台,但是注销后重新登录或者重启系统后登录,或者笔记本使用网络环境发生了变化,都有可能遇到问题。这些遇到问题的...
重装了笔记本上的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-