ORA-12154 & TNS-03505 案例分享
下面介绍一个工作中遇到的案例场景,应用服务器连接数据库出现”ORA-12154: TNS: 无法解析指定的连接标识符“。一般情况下ORA-12541错误是很容易排除的,但是这次遇到案例场景跟以往有所不同,我先模拟这样一个环境,然后一一道来。
应用服务器安装的ORACLE 11g客户端,tnsname里面的有如下配置,我们要通过它连接到目标服务器
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx)
)
)
此时连接数据库时,就会报ORA-12154: TNS: 无法解析指定的连接标识符。仔细检查过tnsname里面的配置,没有任何问题。
C:\Users>sqlplus test/test@TEST
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 5月 16 14:00:04 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
请输入用户名:
接下来尝试一下tnsping是否正常,发现其报TNS-03505: Failed to resolve name。 两个服务器直接的网络是正常的。telnet 检测1521端口也是正常的。
C:\Users>tnsping TEST
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 16-5月 -
2016 14:20:44
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
C:\OracleClient\Oracle32\product\11.2.0\client_1\network\admin\sqlnet.ora
TNS-03505: 无法解析名称
是否很纳闷,那么环境变量是否正常呢? 在David的这篇博客ORA-12154 和 TNS-03505 监听错误的解决方法里面有介绍。echo %path% 查看环境变量都OK,而且也能使用sqlplus连接到其它数据库(后面述说),说明应用服务器的客户端环境是正常的。那么为什么会出现这样的诡异的问题呢?其实是因为在客户端的sqlnet.ora配置文件里面,添加了一行"NAMES.DEFAULT_DOMAIN = db.test.com", 如下所示,
解决方法有两种:
1:修改tnsname.ora里面的配置信息,改为下面即可解决这个问题。此时使用TEST.db.test.com 或TEST都可以连接到数据库。
2:修改sqlnet.ora配置文件,删除这一行"NAMES.DEFAULT_DOMAIN = db.test.com"。
TEST.db.test.com =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx)
)
)
关于NAMES.DEFAULT_DOMAIN 请参考下面官方文档介绍。
NAMES.DEFAULT_DOMAIN
Purpose
To set the domain from which the client most often looks up names resolution requests.
Usage Notes
When this parameter is set, the default domain name is automatically appended to any unqualified net service name or service name.
For example, if the default domain is set to us.example.com
, then the connect string CONNECT scott@sales
gets searched as sales.us.example.com
. If the connect string includes the domain extension, such as CONNECT scott@sales.us.example.com
, then the domain is not appended to the string.
Default
None
Example
NAMES.DEFAULT_DOMAIN=example.com
ORA-12154 & TNS-03505 案例分享的更多相关文章
- PLSQL登录数据库 报ORA -12154的诡异问题
https://q.cnblogs.com/q/89420/ 现象: 1.机器上先后安装了oracle两个版本的client.在装第一个client后,plsql可以顺利连接数据库a并登录. 2.安装 ...
- ArcGIS Add-in插件开发从0到1及实际案例分享
同学做毕设,要求我帮着写个ArcGIS插件,实现功能为:遍历所有图斑,提取相邻图斑的公共边长及其他属性(包括相邻图斑的ID),链接到属性表中.搞定后在这里做个记录.本文分两大部分: ArcGIS插件开 ...
- Office 2010 KMS激活原理和案例分享
Office 2010 KMS激活原理和案例分享 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...
- Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs
[作者:葛伟华.张玉工程师 , Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...
- 老李案例分享:Weblogic性能优化案例
老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...
- 性能调优案例分享:Mysql的cpu过高
性能调优案例分享:Mysql的cpu过高 问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程
老李案例分享:MAT分析应用程序服务出现内存溢出过程 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...
- 老李案例分享:定位JAVA内存溢出
老李案例分享:定位JAVA内存溢出 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培 ...
- 性能调优案例分享:jvm crash的原因 1
性能调优案例分享:jvm crash的原因 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...
- oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)
按照正常操作流程,启动项目,发现项目报错,原因是连接不上oracle数据库, PLSQL连接时报错,错误码 ORA:12154 无法解析指定的连接标识符 第一次,遇到这个错误,在网上找了资料都是需要 ...
随机推荐
- 模式的混合-我們真的需要一次一次的讀配置嗎-MultitonPrototypeFactoryMethod
我們真的需要一次一次的讀配置嗎 通過配置文件,我們其實極大地優化了代碼的結構,很多易變的元素都可以通過配置來修訂. 配置文件是一個文件,那麼使用的時候不可避免的涉及到IO操作. 在內存不值錢的今天,我 ...
- 使用DataConnectionDialog在运行时设置数据源连接字符串
介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...
- 孙鑫MFC学习笔记7:对话框编程(上)
1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...
- 【Java每日一题】20161104
package Nov2016; public class Ques1104 { private String num; public void setNum(String num){ num = n ...
- ORM实现原理
1.什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射.它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的 ...
- Java程序运行时,数据都保存到什么地方?
程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据: 寄存器 这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器 ...
- Node.JS文件系统解析
1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...
- [翻译]Autofac 解析服务
注册组件以后,通过容器或 ILifetimeScope 的 Resolve 方法解析服务: var builder = new ContainerBuilder(); builder.Register ...
- Devrama Slider - 支持任意 HTML 的内容滑块
Devrama Slider 是一个图片滑块,支持很多特色功能.除了支持图片滑动,其它的 HTML 内容也支持.主要特色:响应式.图片预加载.图片延迟加载.进度条.自定义导航栏和控制按钮等等. 在线演 ...
- js获取本机的外网/广域网ip地址
完整源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...