Oracle出现ora-12154无法解析指定连接标识符的解决方法

 更新时间:2017年10月27日 10:57:22   作者:pes  
这篇文章主要为大家详细介绍了Oracle出现ora-12154无法解析指定连接标识符的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

相信使用过Oracle数据库的人一定碰到过“ORA-12154: TNS: 无法解析指定的连接标识符”错误,我在此做一个小小的总结。

在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接,但是Oracle则需要通过Oracle客户端配置网络服务名的方式来连接。否则就会出现“ORA-12154: TNS: 无法解析指定的连接标识符”。配置Oracle客户端详细步骤如下:

安装好Oracle客户端之后,在开始菜单中依次找到“Oracle - OraClient10g_home1—>配置和移植工具—>Net Manager”并打开(Win7,Win8用户如果没有取得Administrator账号登陆需要以管理员方式运行),依次展开“Oracle Net配置—>本地—>服务命名”点击左侧“加号”配置新的网络服务

最后,点击“下一步”完成即可,如果不知道或者忘记Oracle服务名可以通过查看服务获得,比如我这里配置的主机名是我本机,在我的电脑服务中找到oracle相关的服务

通过上面的服务名称,可以看出我安装的服务名就是“ORCL”,或者在服务端通过SQL Plus使用sys账号登陆,输入命令
show parameter service_name查看。

OracleDBConsoleORCL是Oracle网页端管理工具的服务,访问地址一般为“http://127.0.0.1:1158/em/console/logon/logon”,如果不习惯用这个来管理数据库可以不用启动。

OracleJobSchedulerORCL是管理Oracle中计划任务的,一般不用启动。

OracleOraDb10g_home1iSQL*Plus是SQL Plus的服务,如果不习惯在命令行下面操作数据库,可以不用启动。

OracleServiceORCL,OracleOraDb10g_home1TNSListener都需要开启,前者是主服务,后者是监听服务。

当在Oracle客户端中配置好Net Manager中配置好服务后就可以通过我们配置的网络服务名访问Oracle数据库了,此配置实质想D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中增加了一行配置(由于我的Oracle是安装在D盘Oracle目录中,具体路径根据安装时选择的路径而定)。

# tnsnames.ora Network Configuration File: d:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = ORCL)
  )
 )

如果在同一台电脑上面同时安装了Oracle客户端和服务端,那么在服务端的安装目录中也会存在同样的配置文件D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,在这种情况下如果我们配置好了客户端Net Manager然后连接Oracle数据库,可能会出现“ORA-12154: TNS: 无法解析指定的连接标识符”这时,你就应该怀疑,我到底访问的是哪个路径下的配置文件呢?此时可以使用tnsping命令

如果你是在客户端Net Manager中配置的网络服务,但是此时解析出来的使用参数文件却是D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora,那么我想你应该明白了。这种情况有两种解决办法:

第一:在服务端的Net Manager也配置相同的网络服务,或者直接拷贝D:\Oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora中的配置到D:\Oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,每次配置了新的网络服务你都需要这么做,如果不想这么麻烦那就使用第二种解决办法。

第二:修改系统环境变量Path值,将D:\Oracle\product\10.2.0\client_1\bin;路径移至D:\Oracle\product\10.2.0\db_1\bin;前面即可一劳永逸。

注意:造成以上这种情况出现的原因是:在一台电脑上同时安装了oracle客户端和数据库服务,并且是先安装客户端,再安装数据库服务造成的,如果先安装数据库服务,再安装客户端就不会出现这种情况了。

根据以上方式配置完oracle后,相信在程序中就可以正常连接oracle数据库了。

当我安装好PLSQL Developer软件后登陆时任然出现了“ORA-12154: TNS: 无法解析指定的连接标识符”,如果是Win7,Win8用户甚至可以会出现弹出一个白框的情况,这时需要以管理员身份运行PLSQL Developer,并且确保你的PLSQL Developer是读取的oracle客户端配置,直接取消登陆,在PLSQL Developer工具栏中找到“Tools—>Preferences”,在Oracle的Connection节点中找到Oracle Home选择OraClient10g_home1,保存后关闭PLSQL Developer就可以正常登陆了。

需要注意的是,在安装PLSQL Developer时不能安装在带有括号的目录中,如64bit系统的Program Files (x86)目录,就会出现无论你怎么设置,它依然不停的弹出“ORA-12154: TNS: 无法解析指定的连接标识符”。同样的问题也会出现在其他Oracle数据库管理软件中,比如Toad for Oracle

“ORA-12154: TNS: 无法解析指定的连接标识符”是使用Oracle数据库的新手遇到的比较常见的问题之一,只要我们了解了它的工作方式,冷静排查,相信很容易就能够找到问题的解决办法的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • oracle SQL递归的使用详解

    oracle SQL递归的使用详解

    本篇文章是对oracle SQL递归的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Oracle数据库数据丢失恢复的几种方法总结

    Oracle数据库数据丢失恢复的几种方法总结

    相信大家无论是开发、测试还是运维过程中,都可能会因为误操作、连错数据库、用错用户、语句条件有误等原因,导致错误删除、错误更新等问题。当你捶胸顿足或吓得腿软时,肯定希望有办法来恢复这些数据。oracle就提供了一些强大的方法或机制,可以帮到有需要的你。
    2016-12-12
  • Oracle9i的全文检索技术开发者网络Oracle

    Oracle9i的全文检索技术开发者网络Oracle

    Oracle9i的全文检索技术开发者网络Oracle...
    2007-03-03
  • 教你怎样用Oracle方便地查看报警日志错误

    教你怎样用Oracle方便地查看报警日志错误

    由于报警日志文件很大,而每天都应该查看报警日志(查看有无“ORA-”,Error”,“Failed”等出错信息),故想找到一种比较便捷的方法,查看当天报警日志都有哪些错误。
    2014-08-08
  • SQL查询包含下划线的字段内容操作

    SQL查询包含下划线的字段内容操作

    这篇文章主要介绍了SQL查询包含下划线的字段内容操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • mybatis使用oracle进行添加数据的方法

    mybatis使用oracle进行添加数据的方法

    这篇文章主要介绍了mybatis使用oracle进行添加数据的方法,本文给大家分享我的心得体会,需要的朋友可以参考下
    2021-04-04
  • oracle数据库查询表被锁多种方式实现

    oracle数据库查询表被锁多种方式实现

    本文介绍了在Oracle数据库中如何通过V$LOCKED_OBJECT、DBA_OBJECTS和DBA_LOCKS、VSESSION和VLOCK、DBA_BLOCKERS和DBA_WAITERS、V$LOCK等视图查询表是否被锁定的方法,这些视图提供了详细的锁信息,包括锁的类型、模式以及持有锁的会话信息,需要的朋友可以参考下
    2024-10-10
  • Oracle参数设置教程之set和reset的实用案例

    Oracle参数设置教程之set和reset的实用案例

    最近在学习oracle,学习中遇到了一些觉着有必要记录下的内容,所以下面这篇文章主要给大家介绍了关于Oracle参数设置教程之set和reset实用案例的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-10-10
  • oracle数据库中如何处理clob字段方法介绍

    oracle数据库中如何处理clob字段方法介绍

    在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,本文将详细将介绍oracle数据库中如何处理clob字段方法,需要的朋友可以参考下
    2012-11-11
  • 在ORACLE移动数据库文件

    在ORACLE移动数据库文件

    在ORACLE移动数据库文件...
    2007-03-03

最新评论