且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-05-27 07:49:38

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


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

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

3、解决方法
通过Net Manager重新建立监听器和本地服务名。
可参见:http://wenku.baidu.com/link?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徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1351804如需转载请自行联系原作者


woshixuye111