连接oracle数据库出现12560错误

 google一下12560,可以搜到很多解决方案。这篇文章给出了出问题的三种可能原因,他讲的比较典型

解决ORA-12560: TNS: 协议适配器错误,与大家共享

今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

启动oraclehome92TNSlistener服务。
2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SI

D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

输set oracle_sid=XXXX,XXXX就是你的database SID.
经过以上步骤,就可以解决问题。

 

http://www.itpub.net/thread-223688-1-5.html

 

我这里还要补充一条,因为我最近遇到了这个错误,用上面的三步没能解决。

我使用sqlplus连接数据库

在命令行中执行下面的命令:

set oracle_sid=****

sqlplus / as sysdba

 

之后就提示12560了

 

再做如下尝试:

sqlplus sys/password as sysdba

 

仍然提示 12560

 

直到尝试下面的命令才成功:

sqlplus sys/password@servicename as sysdba

 

我们直到使用@是走listener连接数据库的,一般是客户端采用的连接方式。

而我是在数据库本机上敲命令,不走listener应该也是可以的。特别是,当使用了shutdown命令,关闭数据库后,使用listener方式也是连不上的。

所以必须找到不用@就不能连的原因。

 

后来在机器上搜索一下sqlplus.exe,发现有两个,一个在db目录下,一个在client目录下。

原来服务器上既装了oracle服务器端又装了客户端。

而客户端的sqlplus是没法通过非listener方式(不加@servicename)连接的。

 

所以解决方案就是在sqlplus前面加路径,指明是oracle服务器端目录下的sqlplus。

 

你可能感兴趣的:(连接oracle数据库出现12560错误)