日期:2014-05-16  浏览次数:20508 次

oracle无法启动监听

问题描述:

1.远程链接正常,可以使用pl/sql developer链接到远程的数据库,但是本地数据库服务开启后无法链接

2.本地数据库监听打不开,在命令提示符方式下输入

lsnrctl?start;

sqlplus??/nolog

conn?sys/[数据库用户名]i@orcl?as?sysdba;

start;

可以打开本地库,但是使用pl/sql developer无法链接到本地数据库,提示无监听,当在windows服务中启动本地监听时,出现错误本地计算机上的oracleoradb10g_home1TNslistener 服务启动后停止,意思为本地监听己经被占用

异常的地方:

1.打开windows服务,里边有好几个监听,这些监听在服务里显示是未启动。

2.打开注册表,找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/oracl******lister发现有好几个不同的监听.

试用过的解决方法:

1.查看网上资料,这种情况一般情况下都是配置文件信息不正确,监听不能正确读取本机的配置信息。

2.查看本地配置文件我的oracle是装在E:\oracle\product\10.2.0,

查看安装路径下的配置文件E:\oracle\product\10.2.0\db_1\network\ADMIN下的listener.ora和tnsnames.ora的配置信息,并查看其下的host选项,都正确指向本机,其名称为localhost,或者是本机的计算机名,查询无故障,但是依然链接不上

具体解决方法:

1.使用oracle自带工具netConfiguration assistant工具删除本地计算机所有监听,然后再重新新建一个名为listener的新监听,监听指向本机数据库。

2.查看本地windows服务,启动刚建立的新监听,试着启动一下,如果无法启动新建立的监听,进入注册表里,找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/oracl******lister,把除了刚新建立的监听外的其它多余的监听全部删掉,然后重启电脑.启用本地数据库服务,启用本地监听,登录数据库,显示成功.问题解决

问题产生原因分析:

产生这种问题的原因是,本地启用了多个监听,导致本地监听开启的时候提示监听己经运行,并强制结束当前监听.分析过后发现是以前使用远程数据库的时候,自己不小心多建立的监听,其时链接远程数据库的时候,只需要建立不同的服务就可以了,监听只需要建立一个.

现在网上贴出好多处理这种问题的贴子,总结起来不外乎以下几种

1.查看数据库配置文件listener.ora和tnsnames.ora中的host值是否正确指向本机.

2.查看注册表中的监听HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/oracl******lister下的imagePath是否有值,如果没有添加其值,指向你的oracle数据库,比如我的本机值为E:\oracle\product\10.2.0\db_1\BIN\TNSLSNR

3.查看数据库环境变量是否配置,我感觉这个没有什么大不了的。

然后最后就是我说的那种解决方法

?

?