Oracle中“无监听程序”和“协议适配器错误”的解决方法

来源:这里教程网 时间:2026-02-27 19:39:18 作者:

一、发现问题有些杀毒程序会清掉一些oracle注册表信息或删除oracle的bin目录下的一些.exe文件,导致数据库无法启动,下面来分析一下最常见的问题。二、无监听程

一、发现问题
有些杀毒程序会清掉一些oracle注册表信息或删除oracle的bin目录下的一些.exe文件,导致数据库无法启动,下面来分析一下最常见的问题。


二、无监听程序
1、什么是监听器(listener)
监听器是建立在服务端的,用于监听客户端向数据库服务器端提出的连接请求。
配置文件在\db_1\network\admin\listener.ora。

2、本地服务名(tnsname)
本地服务名是建立在客户端的,需要连哪些服务器数据库,就将该数据库服务端的信息配置。
配置文件在\db_1\network\admin\tnsnames.ora。

3、解决方法
通过net manager重新建立监听器和本地服务名。
可参见:?url=z5bnd9d2kygdhnroo1fn5xjxgcedbau6xtk2yrdg-txb7gvkyvvaoplfhyohcthyjqcp0fssulu_ozpa41-iddcf3pgunveovetu7vfpxdg


三、协议适配器错误
上述情况配置好后可能会出现“协议适配器错误”:
c:\documents and settings\admin>lsnrctl
lsnrctl> start
启动tnslsnr: 请稍候...
failed to start service, error 3.
tns-12560: tns: 协议适配器错误
tns-00530: 协议适配器错误

①注册表有问题
c:\documents and settings\admin>regedit
进入注册表到hkey_local_machine\system\currentcontrolset\services\oracleorahome81tnslistener
imagepath被清掉了,增加可扩充字符串值,取名为imagepath,编辑字符串的数值数据为e:\oracle\product\10.2.0\db_1\bin\tnslsnr,退出注册表。

②tnslsnr.exe被删掉了
e:\oracle\product\10.2.0\db_1\bin的tnslsnr.exe被删掉了,,从别处拷过来一个放到该目录就行了。

本文出自 “IT徐胖子的专栏” 博客,请务必保留此出处

相关推荐