相信作为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%\product\10.2.0\db_1\NETWORK\ADMIN目录下的所有文件删了,然后重新连接,一般就能解决了。

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

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

本人出现的错误为第二条,出现空格。

最新文章

  1. Qt qmake 使用(含遗留问题)
  2. 转载《Android LayoutInflater详解》
  3. jQuery MiniUI开发系列之:创建组件对象
  4. VS开发好用的扩展
  5. 网站的SEO
  6. Lvs+keepalived+nginx+php的session 保持的算法
  7. python int与str转换
  8. Sublime Text 3编辑器安装
  9. HDU 1394 树状数组求逆序对
  10. C#基础(WinForm窗体的单例模式,避免窗体被实例化多次)
  11. Purchase Document Open Interface(PDOI)
  12. hdu 3966 Aragorn&amp;#39;s Story(树链剖分+树状数组)
  13. mac_开启ftp并访问
  14. ActiveReports 大数据分析报告:贸易争端与中国企业数字化转型
  15. python实现stack并测试
  16. Luogu4173 残缺的字符串 FFT
  17. 12.22daily_scrum
  18. 一种高效的序列化方式——MessagePack
  19. 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout
  20. Linux 查看操作系统版本

热门文章

  1. 二分图------》Hopcroft-Karp算法 hdu2389
  2. 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
  3. oracle异常记录
  4. poj 1797(并查集)
  5. 转一篇Xcode中利用target编译不同版本的文章
  6. selenium webdriver学习(一)
  7. effective OC2.0 52阅读笔记(三 接口与API设计)
  8. HDU 2602 Bone Collector WA谁来帮忙找找错
  9. STL:原地归并排序模板(InplaceMergeSort)
  10. 使用iScroll时,input等不能输入内容的解决方法(share)