ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载

    对于DBA维护oracle数据库时,登录数据库查看运行状态是必须的事。然而,当oracle架设在windows上时,尤其单个win服务器上安装多个实例或
同时安装有客户端,加之oracle相关环境变量设置混乱时,一切变的不再是那么容易。今天,处理武汉oracle数据库问题时就遇到了这种闹心的情况:
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>sqlplus sys/oracle as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:01:44 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\Administrator>
C:\Users\Administrator>sqlplus sys/sys as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:02:19 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\Administrator>sqlplus sys/sys@orcl as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:02:34 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\Administrator>
C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:04:08 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> conn sys/sys as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误
SQL> conn sys/sys
ERROR:
ORA-12560: TNS: 协议适配器错误
SQL> conn system/system
ERROR:
ORA-12560: TNS: 协议适配器错误
SQL> conn scott/tiger as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误
SQL> exit
C:\Users\Administrator>
   当遭遇到WINDOWS ORA-12560: TNS: 协议适配器错误时,我首先想到的是数据库实例是否启动,监听程序是否启动,检查结果如下:
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第1张图片
因为是生产环境,想也知道数据库及监听肯定是开着的,检查结果与猜测的结果一样。
   然后,检查数据库监听设置是否是操作系统认证,发现监听设置是NTS本地认证:
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第2张图片
   到此为止,排除了实例及监听没开启及监听安全限制,接下来再看就是数据库的环境变量设置:
   打开我的电脑
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第3张图片
   在我的电脑右键属性
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第4张图片
   点击系统属性上的环境变量
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第5张图片
可以看到,系统环境变量设置里的ORACLE_HOME变量没有值,终于知道原因在哪了。
   接下来就是看当前数据库的数据库安装目录,依次右键我的电脑-》服务-》配置-》服务-》找到ORACLE相关服务
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第6张图片
   在oracleserviceorcl服务上右键属性,可执行文件的路径得上一层就是ORACLE_HOME环境变量对应的值
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第7张图片
   在含有linstener关键字的服务上右键属性,可以查看监听程序安装目录与数据库软件安装目录是否在同一级目录下,排除多版本数据库同机的情况。
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第8张图片
    进入到11.2.0文件夹下,发现有2个文件夹,一个是db软件的,一个是客户端软件的,这就找到根源了,客户端与db软件都有oracle_home环境变量,
估计是为了避免环境变量冲突,取消系统中ORACLE_HOME的环境变量值。
ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载_第9张图片
   由于是生产环境,不能随便更改操作系统中ORACLE_HOME的环境变量值,可能导致客户端程序不能正常使用;还有一个方法就是在CMD中设置临时环境环境变量,
这就跟unix/linux环境下类似,前提是知道ORACLE的ORACLE_SID、ORACLE_HOME环境变量值,需要设置path环境变量,另外windows不区分环境变量名的大小写。
   设置临时环境变量后正常登陆数据库
C:\Users\Administrator>set oracle_sid=orcl

C:\Users\Administrator>set oracle_home=D:\app\Administrator\product\11.2.0\dbhome_1

C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:08:36 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
ERROR:
ORA-12557: TNS: 协议适配器不可加载
请输入用户名:
ERROR:
ORA-12557: TNS: 协议适配器不可加载
请输入用户名:
ERROR:
ORA-12557: TNS: 协议适配器不可加载
SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus
C:\Users\Administrator>
C:\Users\Administrator>set path=D:\app\Administrator\product\11.2.0\dbhome_1\bin\
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 11月 10 10:09:04 2016
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29357786/viewspace-2128228/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29357786/viewspace-2128228/

你可能感兴趣的:(ORACLE FOR WINDOWS ORA-12560:TNS:协议适配器错误&ORA-12557:TNS:协议适配器不可加载)