监听服务中Oracle数据库之中使用最主要的一个服务,可是这个服务常常会出现错误,包括之后在工做之中此服务也会出现错误,故给出两种常见错误的解决方案(故障一、故障2)sql
故障1:数据库
注册表使用了优化软件(如:360安全卫士等)被删除了相关项windows
对于每个系统服务实际上都会在注册表之中有所保存;安全
监听服务的注册项:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleOraDb10g_home1TNSListener 其下有一个“ImagePath”的选项,若是优化软件删除了,则应从新建一个“ImagePath”选项,数据名称为ImagePath且数据值数据为D:\oracle\product\10.1.0\db_1\BIN\TNSLSNR ,以下图所示:网络
故障2:网络环境发生改变
oracle
修改计算机名后,监听服务OracleOraDb10g_home1TNSListener不能启动了,应如何排除?ide
计算机名修改成:teacher ,以下图所示:工具
解决方法:优化
1-重启机器后,检验服务OracleServiceMLDN和OracleOraDb10g_home1TNSListener可否正常启动?spa
前者能正常启动,但后者启动后,再刷新,则显示不能启动!
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!
//检查监听服务
2、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.
通过以上步骤,就能够解决问题。
思考:
若是在Linux/Unix平台下呢,如何解决呢?