监听服务中Oracle数据库之中使用最主要的一个服务,但是这个服务经常会出现错误,包括以后在工作之中此服务也会出现错误,故给出两种常见错误的解决方案(故障1、故障2)
故障1:
注册表使用了优化软件(如:360安全卫士等)被删除了相关项
对于每一个系统服务实际上都会在注册表之中有所保存;
监听服务的注册项:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraDb10g_home1TNSListener 其下有一个“ImagePath”的选项,如果优化软件删除了,则应重新建一个“ImagePath”选项,数据名称为ImagePath且数据值数据为D:\oracle\product\10.1.0\db_1\BIN\TNSLSNR ,如下图所示:
故障2:网络环境发生改变
修改计算机名后,监听服务OracleOraDb10g_home1TNSListener不能启动了,应如何排除?
计算机名修改为:teacher ,如下图所示:
解决方法:
1-重启机器后,检验服务OracleServiceMLDN和OracleOraDb10g_home1TNSListener能否正常启动?
前者能正常启动,但后者启动后,再刷新,则显示不能启动!
2-进入D:\oracle\product\10.1.0\db_1\NETWORK\ADMIN目录修改2个文件(listener.ora、tnsnames.ora),如下图所示:
//将HOST = mldn-teacher 修改为HOST = teacher ,在listener.ora中
//在tnsnames.ors中,将HOST = mldn-teacher 修改为HOST = teacher如下图所示:
备注:
到此为止,监听程序能正常启动!但是如果使用程序连接Oracle 10g的话,则以上的配置有可能还是不能正常访问数据库!
3-我们进行数据库名称的注册,如下图所示:
//最后是 文件-->保存网络配置-->OK!
//检查监听服务
二、Oracle为我们提供了一个监听状态的程序叫LSNRCTL.exe
故障3:
ORA-12560:TNS:协议适配器错误
解决方法 (此种方法好象不太理想,请博友们指点哈,谢谢!)
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,
启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务
面板,启动oracleserviceXXXX,XXXX就是你的database SID.
启动2个服务(OracleServiceMLDN和OracleOraDb10g_home1TNSListener)如下图所示:
一般至此,Oracle client访问应该正常了!
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,就是你的database SID.或者进入sqlplus前,在command line下输set oracle_sid=XXXX,就是你的database SID.
经过以上步骤,就可以解决问题。
本文转自
beyondhedefang 51CTO博客,原文链接:http://blog.51cto.com/beyondhdf/1282308 ,如需转载请自行联系原作者