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

连接远程服务器提示ora 12154,EasyConnect出现ORA-12154(无法解析指定的连接标示符)错误的解决…今天在群里碰见了一个ORA-12154的问题,在此记录一下解决过程起因是群里面一个人问了他的Windows客户端采用easyconnect方式连接Oracle服务器的时候,报错如下:ORA-12154:TNS:无法解析指定的连接标示符最初的想法是在服务器端的listener没有相关的service_name来接收请求,不过他后来给出的截图表明,确实有相关的service_name来接收这个请求。…

大家好,又见面了,我是你们的朋友全栈君。

今天在群里碰见了一个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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161570.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器版dll修复工具,dll修复工具「建议收藏」

    服务器版dll修复工具,dll修复工具「建议收藏」winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。如果sqlite3.dll系统文件丢失、损坏,自行寻找选择适合系统的DLL系统文件,不但麻烦,还得冒着系统异常的风险。无主之地、荣誉勋章等游戏所需的physxcudart_20.Dll下载,解压后…

    2022年6月1日
    181
  • 算法中的数学—卡特兰数(解析+代码实现)

    算法中的数学—卡特兰数(解析+代码实现)总结一下碰到的关于卡特兰数的问题,方便后续复习。

    2022年6月11日
    29
  • rapidjson指针[通俗易懂]

    rapidjson指针[通俗易懂]博客搬家,原地址:https://langzi989.github.io/2017/05/27/rapidjson指针/本系列文章以例子的方式进行呈现。#include”rapidjson/document.h”#include”rapidjson/pointer.h”#include<iostream>usingnamespacerapidjson;/…

    2025年7月13日
    2
  • mybatis逆向工程插件

    mybatis逆向工程插件一个简单的利用mybatis连接数据库生成实体和mapper的工程下面是项目结构图:首先lib引入jar包:GeneratorSqlmap.java:importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importor…

    2022年8月21日
    5
  • 数据库置疑修复方法_msdb数据库置疑的解决方法

    数据库置疑修复方法_msdb数据库置疑的解决方法SQL2000数据库置疑解决方法置疑可能是因为磁盘空间不够或者是日志文件损坏再或者操作时主机突然掉电造成的DB为改名后的数据库,实际要导入的是SMPDB数据库1:新建一个不同名的数据库2:停掉SQLSERVER3:在C:/ProgramFiles/MicrosoftSQLServer/MSSQL/Data中用备份的数据库MDF的文件覆盖掉这个数据库文件4:重启SQL5:执行以下语句紧急打开置疑的数据库(注意空格)数据库紧急打开代码如下: USEMASTER  GO  SP_CONF

    2022年8月20日
    11
  • scala中map与flatMap浅析

    scala中map与flatMap浅析在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合。由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referentialtransparency)的和没有副作用(NoSideEffect)。任何一种函数式语言中,都有map函数与fa

    2022年5月4日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号