连接远程服务器提示ora 12154,EasyConnect出现ORA-12154(无法解析指定的连接标示符)错误的解决...

今天在群里碰见了一个ORA-12154的问题,在此记录一下解决过程

起因是群里面一个人问了他的Windows客户端采用easy connect方式连接Oracle服务器的时候,报错如下:

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

最初的想法是在服务器端的listener没有相关的service_name来接收请求,不过他后来给出的截图表明,确实有相关的service_name来接收这个请求。

而使用同样的easy connect语句,在另外一台服务器上,却是能够成功连接的。那么就说明是这台windows客户端的问题了

找了相关资料之后把问题锁定在了sqlnet.ora文件的一个参数上:

NAMES.DIRECTORY_PATH

查找文件找出这个文档的功能描述如下(具体可以参考:http://docs.oracle.com/cd/B19306_01/network.102/b14213/sqlnet.htm#sthref370):

Use the parameter NAMES.DIRECTORY_PATH to specify the order of the naming methods used for client name resolution lookups.

DEFAULT:

NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)

VALUES:

tnsnames                    local naming naming method

ldap                        directory naming naming method

ezconnect or hostname      easy connect naming or host naming method

CDS                        CDS external naming method

nis                        Network information service(NIS) external naming method

从上文的说明当中,可以看到的是,该参数是指定客户端的命名方法的

针对如上问题,做了下面这个实验:

现在在使用tnsnames和Easy Connect都能正常连接客户端上将NAMES.DIRECTORY_PATH参数修改为如下值:

NAMES.DIRECTORY_PATH = (TNSNAMES)

然后我们在使用Easy Connect的连接方式进行连接,会发现:

D:\>sqlplus mai/mai@192.168.0.123:1521/test

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 8月 2 17:42:12 2013

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:

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

请输入用户名:

好吧,就是这样。这个时候如果使用tnsnames进行连接的话,是依旧可以正常连接的

我们如果将参数修改为:

NAMES.DIRECTORY_PATH = (TNSNAMES,EZCONNECT)

Easy Connect连接方式可以正常连接

总结,在默认情况下,即使我们不配置NAMES.DIRECOTRY_PATH参数的话,我们依然可以用easy connect的连接方式连接Server端的,不过如果出现配置错误或者客户端类似的异常情况的话,这不失是一种解决方式

相关阅读:

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值