造成ORA-12560: TNS: 协议适配器错误的三个原因

在Oracle中新建了一个数据库,今天把它删了之后再登录SQL*PLUS就登不上去了(因为删除了数据库时注册表里的ORACLE_SID值就置为空值了),出现ORA-12560:TNS:协议适配器错误。

  ORA-12560: TNS: 协议适配器错误的解决方法

  造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:

  1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oraclehome92TNSlistener服务。

  2.服务oracleserviceXXXX没有开启,XXXX就是你的database SID.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的database SID.

注释:服务oracleserviceXXXX开启后,database instance有没有起来,都不会提示ORA-12560的。

  3.如果在注册表、cmd窗口和Windows“系统属性”界面上,都没有设置过oracle_sid的话,则会提示ORA-12560的。

注释:

regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.

或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.

或者进入sqlplus前,在command line下输set oracle_sid=XXXX,XXXX就是你的database SID.

  经过以上步骤,就可以解决问题。


笔者所遇问题的原因是注册表在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1里没有oracle_sid,而oracle_home值为错误的路径值。

解决问题查找资料过程:

启动监听 ORA-12560 谷歌

创建数据库ora-12560 谷歌


你可能感兴趣的:(造成ORA-12560: TNS: 协议适配器错误的三个原因)