`
slbszq
  • 浏览: 267814 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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)
    )
  )

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

 

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

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

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

     #>lsnrctl status 查看监听状态

     #>lsnrctl start 启动监听

2.通过Sql Plus连接一下试试,如果Sql Plus连接能成功,那就可能是你的tnsnames.ora内容有错误,比如别名前有空格,只要有空格那就肯定是不行的,而且如果那段内容是出现在文件的中间的话,将导致该文件里所有相应的连接别名都不成功,如果是在最后面就只有其自身连接别名不能成功,其他连接别名还是能连接成功。

如:

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

3.进入PLSQL Developer的主界面,在登录界面选择取消即不登录进入主界面,然后选择菜单Tools(工具)-Preferences(首选项),在设置窗口中,选择Oracle-Connection(连接),对应设置窗口中,找到Oracle Home(Oracle主目录)选择你本地所安装客户端的版本,保存设置,然后重新启动PLSQL Developer,这时就可以正常登录了。(我的就是这种原因,主要是因为本地安装oracle后,PLSQL Developer默认使用本地服务端,而不是使用客户端连接远程oracle了,重新选择客户端解决了问题)。

4.如果确保你的tnsnames.ora内容没有错误,那请%ORACLE_HOME%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了重新配置连接,然后重新连接,一般就能解决了

说明一下:那个目录里的文件是在你建立连接的时候动态生成的,不要怕删了会有问题(如果连接比较多建议先备份一下),删过后重新配置客户端Net Manager即可。

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

 

 

分享到:
评论
1 楼 gisnewcomer 2014-08-16  
还有一种情况:
  Win7系统中,即使什么都正常安装配置,如果你的PL/SQL Developer安装在才c:\Program Files (x86)类似带有特殊字符或者中文字符的目录下,依然会出现ORA-12154错误。只有把PL/SQL Developer安装在一般目录下,才能正常连接Oracle。

相关推荐

Global site tag (gtag.js) - Google Analytics