转载自:/pan_tian/article/details/7699469
这种问题一般是因为客户端不知道要连那个instance或者不知道要使用哪个TNS Alias可能的原因1.服务没有起来下边是Tom的一个Test Case来说明OracleServiceSID服务没有起来的话,是会引起ORA-12560错误的。
C:\DocumentsandSettings\tkyte>sqlplusscott/tigerSQL*Plus:Release10.1.0.4.0-ProductiononThuSep615:43:55Copyright(c)1982,,Oracle.Allrightsreserved.Connectedto:OracleDatabase10gEnterpriseEditionRelease10.1.0.4.0-ProductionWiththePartitioning,OLAPandDataMiningoptionsscott%ORA10GR1>exitDisconnectedfromOracleDatabase10gEnterpriseEditionRelease10.1.0.4.0-ProductionWiththePartitioning,OLAPandDataMiningoptionsC:\DocumentsandSettings\tkyte>netstoporacleserviceora10gr1TheOracleServiceORA10GR1serviceisstopping.........TheOracleServiceORA10GR1servicewasstoppedsuccessfully.C:\DocumentsandSettings\tkyte>sqlplusscott/tigerSQL*Plus:Release10.1.0.4.0-ProductiononThuSep615:44:35Copyright(c)1982,,Oracle.Allrightsreserved.ERROR:ORA-12560:TNS:protocoladaptererrorEnteruser-name:ERROR:ORA-12560:TNS:protocoladaptererrorEnteruser-name:ERROR:ORA-12560:TNS:protocoladaptererrorSP2-0157:unabletoCONNECTtoORACLEafter3attempts,exitingSQL*PlusC:\DocumentsandSettings\tkyte>netstartoracleserviceora10gr1TheOracleServiceORA10GR1serviceisstarting..........TheOracleServiceORA10GR1servicewasstartedsuccessfully.C:\DocumentsandSettings\tkyte>sqlplusscott/tigerSQL*Plus:Release10.1.0.4.0-ProductiononThuSep615:45:12Copyright(c)1982,,Oracle.Allrightsreserved.Connectedto:OracleDatabase10gEnterpriseEditionRelease10.1.0.4.0-ProductionWiththePartitioning,OLAPandDataMiningoptionsscott%ORA10GR1><aname="PAGETOP"></a> 修改方法:控制面板>管理工具>服务里边把OracleServiceSID起起来
可能的原因2.ORACLE_SID环境变量没有指定(最常见引起ORA-12560问题的原因)检查方法,命令行(cmd)下, C:\Documents and Settings\ptian>set oracle_sid
ORACLE_SID=test ORACLE_SID是sqlplus默认连接的数据库instance,即sqlplus user/pwd连接的instance,如果不指定sqlplus里连接的时候就需要明确@你的instance,eg,sqlplus user/pwd@instance. 修改方法:在注册表中,HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\ORACLE_SID 需指向你的Instance(eg.orcl);或者在系统的环境变量里加ORACLE_SID项,值为Instance的SID。 可能的原因3.TNS_ADMIN环境变量没有指定
TNS_ADMIN=D:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN TNS_ADMIN应该返回你的tnsnames.ora所在的目录 修改方法:可以在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\TNS_ADMIN或者环境变量中指定。可能的原因4.ORACLE_HOME环境变量没有指定和上边的方法类似,检查Oracle_Home环境变量可能的原因5.tnsnames.ora文件内容不对A sample: TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ptian-cn.)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
Possible fixes for the TNS-12560 include: