在用命令行登录oracle时, 报出了"ORA-12560: TNS: 协议适配器错误"错误消息
C:\Users\pansanday>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 7月 7 23:03:40 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved. ERROR: ORA-12560: TNS: 协议适配器错误 请输入用户名: sys as sysdba 输入口令: ERROR: ORA-12560: TNS: 协议适配器错误 请输入用户名: scott 输入口令: ERROR: ORA-12560: TNS: 协议适配器错误 SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus在服务中检查了一下服务, OracleServiceORCL, OracleOraDb10g_home1TNSListener, OracleOraDb10g_home1iSQL*Plus三个服务都启动正常
在网上搜索了一下, 意识到可能是因为系统中有多个实例(SID), 在登录时, oracle无法判断是登录的哪一个实例(或者是因为其他几个实例都没有启动), 从而导致了这个问题
解决方案:
在登录前, 设置一下要登录的实例: set oracle_sid=ORCL
D:\Program Files\PowerCmd>set oracle_sid=ORCL D:\Program Files\PowerCmd>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 7月 7 23:15:21 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select * from dual; D - X至此, 问题得到解决.