• 转: ORA12560: TNS:protocol adapter error(TNS:协议适配器错误)


    转载自:http://blog.csdn.net/pan_tian/article/details/7699469

    这种问题一般是因为客户端不知道要连那个instance或者不知道要使用哪个TNS Alias
     
    可能的原因1.服务没有起来
    下边是Tom的一个Test Case来说明OracleServiceSID服务没有起来的话,是会引起ORA-12560错误的。
    1. C:\Documents and Settings\tkyte>sqlplus scott/tiger  
    2.   
    3. SQL*Plus: Release 10.1.0.4.0 - Production on Thu Sep 6 15:43:55 2007  
    4.   
    5. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
    6.   
    7.   
    8. Connected to:  
    9. Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production  
    10. With the Partitioning, OLAP and Data Mining options  
    11.   
    12. scott%ORA10GR1> exit  
    13. Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production  
    14. With the Partitioning, OLAP and Data Mining options  
    15.   
    16. C:\Documents and Settings\tkyte>net stop oracleserviceora10gr1  
    17. The OracleServiceORA10GR1 service is stopping.........  
    18. The OracleServiceORA10GR1 service was stopped successfully.  
    19.   
    20.   
    21. C:\Documents and Settings\tkyte>sqlplus scott/tiger  
    22.   
    23. SQL*Plus: Release 10.1.0.4.0 - Production on Thu Sep 6 15:44:35 2007  
    24.   
    25. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
    26.   
    27. ERROR:  
    28. ORA-12560: TNS:protocol adapter error  
    29.   
    30.   
    31. Enter user-name:  
    32. ERROR:  
    33. ORA-12560: TNS:protocol adapter error  
    34.   
    35.   
    36. Enter user-name:  
    37. ERROR:  
    38. ORA-12560: TNS:protocol adapter error  
    39.   
    40.   
    41. SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus  
    42.   
    43. C:\Documents and Settings\tkyte>net start oracleserviceora10gr1  
    44. The OracleServiceORA10GR1 service is starting..........  
    45. The OracleServiceORA10GR1 service was started successfully.  
    46.   
    47.   
    48. C:\Documents and Settings\tkyte>sqlplus scott/tiger  
    49.   
    50. SQL*Plus: Release 10.1.0.4.0 - Production on Thu Sep 6 15:45:12 2007  
    51.   
    52. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
    53.   
    54.   
    55. Connected to:  
    56. Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production  
    57. With the Partitioning, OLAP and Data Mining options  
    58.   
    59. scott%ORA10GR1><a name="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环境变量没有指定
    检查方法,命令行(cmd)下,
    C:\Documents and Settings\ptian>set 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.cn.oracle.com)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = test)
        )
      )

    Possible fixes for the TNS-12560 include:

  • 相关阅读:
    Nginx 前后端分离部署
    SpringBoot 使用外部 Tomcat 容器运行
    SpringBoot 加载 properties
    SpringBoot 启动时加载的自动配置类(SpringFactoriesLoader、SPI)
    微信小程序订阅消息通知
    centos云服务器 部署Gitblit
    centos 安装java
    图片链接控制宽高
    腾讯云部署https
    腾讯云域名绑定
  • 原文地址:https://www.cnblogs.com/princessd8251/p/3079900.html
Copyright © 2020-2023  润新知