一、发现问题
有些杀毒程序会清掉一些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被删掉了,从别处拷过来一个放到该目录就行了。