• ORA-12154_TNS无法解析指定的连接标识符


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

    相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到同样问题的友人们提供帮助。

    问题场景描述:

    服务器端版本:oracle 10.2.0.10

    客户端版本:oracle 10.2.0.10

    客户端开发工具:PL/SQL Developer

    通过客户端来连接服务器,其主要文件就是通过客户端的tnsnames.ora来配置,在原文件的基础上增加:

    SID别名 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = SERVER_IP)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = SID_NAME)
        )
      )

    例:

    dev_db =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ora10)
        )
      )

    通过PL/SQL Developer连接dev_db时,报“ORA-12154: TNS: 无法解析指定的连接标识符”。(这个问题以前也碰到过,但解决方法不太一样,因具体的问题不太一样。)

    我将自己知道的一些解决方法说一下:

    1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听

     客户端:tnsping <tns_name>
          服务器Linux下:

         #>lsnrctl status 查看监听状态

         #>lsnrctl start 启动监听

    2.通过Sql Plus连接一下试试,如果Sql Plus连接能成功,那就说明你的tnsnames.ora内容有错误

    我的问题就在别名dev_db前面有一个空格,这个可以通过文本编辑器(Edit Plus,UE等)来查看是否有空格,只要有空格那就肯定是不行的,而且如果那段内容是出现在文件的中间的话,将导致该文件里所有相应的连接别名都不成功,如果是在最后面就只有其自身连接别名不能成功,其他连接别名还是能连接成功。(注:我的tnsnames.ora配置了多个数据库实例的连接,所有才有多个连接别名。)

    如:

    空格dev_db =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.10.5)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ora10)
        )
      )

    3.如果确保你的tnsnames.ora内容没有错误,那请将%ORACLE_HOME%product10.2.0db_1NETWORKADMIN目录下的所有文件删了,然后重新连接,一般就能解决了。

    说明一下:那个目录里的文件是在你建立连接的时候动态生成的,不要怕删了会有问题

    4.进入PLSQL Developer的主界面,在登录界面选择取消即不登录进入主界面,然后选择菜单Tools(工具)-Preferences(首选项),在设置窗口中,选择Oracle-Connection(连接),对应设置窗口中,找到Oracle Home(Oracle主目录),选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL Developer,这时就可以正常登录了。

    如果您还碰有ORA-12154:错误代码的其他原因和有其他的解决方法,请跟贴评论我会加以完善这篇文章的!谢谢!

     

    大家好: 很高兴自己在不断学习的过程中,积累知识和经验。也能够为了正在学习的网友们提供好的资料,一起学习,一起努力。成就自己的梦想.............
  • 相关阅读:
    nmap加快扫描速度(转载)
    deepin换源
    利用74HC595实现的流水灯 Arduino
    解决用vscode开发arduino时Serial未定义
    JS获取格式为YYYY-MM-DD的当前日期
    链式前向星存图
    Nginx+FFmpeg实现RTSP转RTMP
    非root用户安装centos的jdk
    Nginx配置请求头
    Eclipse-Che 安装(Centos)
  • 原文地址:https://www.cnblogs.com/su5012-lingyao/p/5197279.html
Copyright © 2020-2023  润新知