Oracle 无法监听 因目标主机或对象不存在 连接失败--解决方案

 

在配置Oracle过程中,监听服务无法启动的原因有很多,原因的分析主要通过Oracle配置过程中给出的错误信息进行判断。

 

 

 

我在配置过程中,安装过程都很顺利,基本没有出现错误。但在最后进入Oracle Enterprise Manager 10g Database Control后,发现控制台提示 无法监听。

 

在服务管理器中启动OracleOraDb10g_home1TNSListener服务,提示“因目标主机或对象不存在”或“依赖的服务未启动”。

 

1.我首先重启了服务“OracleServiceORCL”,后继续启动监听服务,没有效果。

 

2.后检查了防火墙设置(因为监听服务是NETWORK服务,如果机器上安装有放火墙,可能是服务器端口号被屏蔽),重启防火墙后,仍然不行。

 

3.因为每个服务都是一个exe应用程序,而对于数据库这样的服务,应该都是在注册表中设置其路径,后直接读取的。所以我百度了下,监听程序的注册表相关,如下:

 

在运行处执行regedit进入注册表到

开始 →运行→ regedit

按下面路径

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome90TNSListener

找到OracleOraHomexxxTNSListener,检查其ImagePath是否存在,如果存在,检查其值(应为字符串值)是否为“你的Oracle安装目录\ora10(其他版本对应的是oraxxx目录)\bin\tnslsnr”

 

 

 

检查过后,发现ImagePath并没有出错

 

 

4.在绝望之际,无意发现了“lsnrctl”这个Oracle的命令,用于在Dos中启动监听服务,并给出提示信息;

 

开始 → 运行→ 输入CMD→

 

C:>lsnrctl

LSNRCTL> start

 

 

 

如上图所示,不知道你是否注意到一个很重要的地方;

 

 

 

HOST=192.168.1.100

 

 

 

此时,我才恍然大悟,马上在cmd中继续输入命令>ipconfig,查看我的电脑的IP,发现我的ip是:192.168.1.5。。。。。。。

 

我想这时候大家都应该明白错误的原因了吧,因为我的电脑IP设置为自动获取,所以每次重新连接猫,IP都会改变,此时,监听服务当然会找不到目标主机,因为主机作为其监听对象已经改变了其地址。

 

 

 

接下来的事,就不用我说了吧。。当然你可以改变自己电脑的Ip,也可以改变Oracle NETWORK 上的配置;

 

 

 

改变电脑IP 我就不说了,改变Oracle Network上的配置:

 

 

 

在你的Oracle安装目录中,如C:\oracle\product\10.2.0\db_1\network\ADMIN,下面有两个文件tnsnames.ora 和 listener.ora,用文本文件打开,修改HOST后面的IP地址即可;

 

 

 

5.修改IP后,重新输入

 

C:>lsnrctl

LSNRCTL> start

 

此时,提示监听启动成功:(显示启动监听的一些提示信息)

 

 

 

 

检查服务管理器,此时 监听服务已启动,Database Control中重新登入后,监听也启动了。。大功告成~~

 

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xmiay/archive/2010/11/09/5998665.aspx

你可能感兴趣的:(oracle)