当前位置:Gxlcms > 数据库问题 > 排错记录:plsql无法连接oracle ora-12154 ora-12560

排错记录:plsql无法连接oracle ora-12154 ora-12560

时间:2021-07-01 10:21:17 帮助过:2人阅读

服务。
  • 服务器orcl实例已经启动:管理工具---服务,OracleServiceORCL
  • 服务器能ping通:网络连接良好
  • 实例能tnsping通:能够ping通,则说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。
  • oracle客户端oracle net Manager测试通过,表明确实能连接
  • 环境变量path值设置已经修改好。
  • sqlplus提示 ORA-12154:sqlplus 用户名/密码@192.168.164.132:1521/orcl。
  • plsql-preference-oracle home人工设置正确。
  •  

    已经过程经过N次重复始终无法连接,始终报错“ORA-12154"。

     

    三、解决方案

    经过以上反复修改,终于有一天用sqlplus远程连接时报了个新错误:

    "ORA-12560: TNS: 协议适配器错误"

    总算有个眉目了,服务器端在环境变量中设置orcle_sid=orcl。

       网上百度解决方法如下

    在运行中输入regedit,进入注册表,然后到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0将该环境变量ORACLE_SID设置为****,****database SID。

    或者右击我的电脑,属性--高级系统设置--环境变量---系统变量--新建变量名=oracle_sid,变量值=****,****database SID。或者进入sqlplus前,在command line下输set oracle_sid=********database SID。

    但我进入注册表后发现,我的ORACLE_SID=orcl,没有问题。

    继续尝试下面的设置环境变量的方式,新建变量:ORACLE_SID=orcl,问题解决。

     

    有待探讨

    那么问题来了:

    这台服务器中注册表中设置了ORACLE_SID也不能保证完全可以连接,最好设置ORACLE_SID;而跟他完全同样配置的另一台服务器(这两台其实是虚拟机,复制过来的,完全一样),并未在环境变量中设置ORACLE_SID却能连接。这是为什么?

     

    参考

    ORA-12560: TNS: 协议适配器错误

    ORA-12154: TNS: 无法解析指定的连接标识符

    “ORA-12154: TNS: 无法解析指定的连

    SQL plus连接远程Oralce数据库

    排错记录:plsql无法连接oracle ora-12154 ora-12560

    标签:

    人气教程排行