双网卡环境导致Oracle连接异常
现在就是流行向最高水平看齐,这次项目的部署,好好的SQL Server扔了(有正版授权的企业版,神啊...),逢人就夸:“俺们那上的可是最顶级的Oracle Database System!”。看了看价钱,也确实蛮顶级的,60万,吓得直接就没敢含到项目整体预算里。
可是贵的东西就好用么?未必。这个建筑在Java上,满身UNIX气息的东西,一副死板的面孔。装的时候就被叮嘱要注意,装不好LISTENER就可能起不来...还好哥们我还练过,Windows版的也没有Linux的那么陌生,折腾了几次都很正常。不过嘛,欺负新手的东西,总要给人下马威的,今天下午在上面装ArcSDE的时候,硬是连不到数据库上了,猛报错TNS:无法解析名字。
这很蹊跷,用管理页面看,监听很正常的在运行,用连接字串进行连接,也很正常登入和操作。这至少证明数据库实例和监听是有在工作的,可是究竟是什么导致无法连接呢?根据出错信息,使用tnsping尝试,发现tnsping orcl(默认启动数据库的SID)返回同样的错误。这下就把问题锁定在名解析下,Oracle网络服务的TNS名解析,一般使用LDAP或者本地的tnsnames.ora文件,由于网络中并没有配置Oracle LDAP服务,因此打开tnsnames.ora察看,里面的“ORCL=”条目并没有看出什么问题,使用Oracle的Net Manager工具,可以看到监听的配置listener.ora中和tnsnames.ora里ORCL条目的配置完全一致,主机名、端口号都没有什么异常。
这种情况下,只好反复重启服务和修改配置尝试,可并没有效果,还差点把Oracle给弄糟,有几次监听都起不来了,吓得我一头汗。绝望之中不小心将tnsping当成了普通的ping命令,键入“tnsping 主机名”,忽然间来了精神,神奇的发现返回的结果中,主机名被EZCONNECT解析为一个奇怪的IP地址。我这才发现,服务器的网络管理中有2个网卡,一个是实际网卡,IP为一般使用的正确IP,另一个是我已经离开的同事不知道因为什么装的Microsoft Loopback Adapter,配置的IP地址正是那个奇怪的IP。
立即上网查资料,发现由于Oracle必须把主机名解析为一个IP,而主机名在双网卡跨网段的情况下是工作不正常的,因为一个名不可能被解析为2个地址,就造成了监听在双网卡情况下工作不正常。我这次的情况就是双网卡网段不同造成了混乱,监听的名解析正好被绑定到了那个没有实际作用的奇怪IP上,从正常网卡进行的使用主机名的连接全部失败,而直接使用IP作为连接字段的连接却成功了。
一开始还打算通过纠正Windows的hosts文件来强制名解析回到正确的IP上,不料却又引起了EZCONNECT的混乱。吃够了教训后,将监听的配置使用IP地址重写,并同时绑定到两个网卡的IP上,然后将tnsnames.ora中条目内的主机名也改为IP地址,测试终于OK
双网卡环境导致Oracle连接异常的更多相关文章
- Linux 虚拟机虚拟网卡问题导致无法连接问题
问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- SQLServer 2012异常问题(一)--故障转移群集+镜像环境导致作业执行失败
原文:SQLServer 2012异常问题(一)--故障转移群集+镜像环境导致作业执行失败 先感谢一下我的同事们最先发现此问题,鸣谢:向飞.志刚.海云 最近在生产环境发现一个诡异的问题: 环境:WIN ...
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...
- VirtualBox双网卡搭建Linux虚拟实验环境
VirtualBox中有如下几种网络连接方式: NAT(NAT到宿主机IP地址) NAT Network (NAT到宿主机所在的网段,即使用相同的网关和掩码) Bridged Adapter Inte ...
- [转]在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的
本文转自:http://www.cnblogs.com/studyzy/archive/2010/10/28/1863056.html 我们平时使用的都是32位的机器进行开发,装的都是32位的软件,但 ...
- [转] 如何设置双网卡同时连接内网外网_bpao_新浪博客
已剪辑自: http://blog.sina.com.cn/s/blog_5d3e229c0100skwe.html 如何设置双网卡同时连接内网外网 . 通过无线网络连接外网,确保连接成功后开始第二步 ...
- SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法
原文摘自:http://www.jb51.net/article/52581.htm 这篇文章主要介绍了SELinux导致PHP连接MySQL异常Can't connect to MySQL serv ...
- Oracle 监听器日志文件过大导致监听异常
Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...
随机推荐
- IOS开发---菜鸟学习之路--(二)-数据获取
第二篇了. 本篇要讲的是数据获取. 为什么将数据获取放在第二篇就讲呢? 因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始. 可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么 ...
- 贪吃蛇—C—基于easyx图形库(下):从画图程序到贪吃蛇【自带穿墙术】
上节我们用方向控制函数写了个小画图程序,它虽然简单好玩,但我们不应该止步于此.革命尚未成功,同志还需努力. 开始撸代码之前,我们先理清一下思路.和前面画图程序不同,贪吃蛇可以有很多节,可以用一个足够大 ...
- nginx在基于域名访问的时候是下载的界面
刚才在做nginx实验时候出现访问域名的时候是下载页面一直下载了好多文件,使用IP访问就正常,在配置文件中找到一个sendfile的参数,把参数值改为off或者直接注释掉这个参数就可以访问了.
- [错误处理]AttributeError: 'generator' object has no attribute 'next'
在python3下学习yield用法. 程序如下: def bar(n): m = n while True: m += 1 yield m b = bar(3) print(b.next()) 程序 ...
- poj3748 位运算 bitset
位操作 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9064 Accepted: 3626 Description 假 ...
- nyoj 题目14 会场安排问题
会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...
- HDU 5687 Problem C(Trie+坑)
Problem C Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- HDU 5322 Hope ——NTT 分治 递推
发现可以推出递推式.(并不会) 然后化简一下,稍有常识的人都能看出这是一个NTT+分治的情况. 然而还有更巧妙的方法,直接化简一下递推就可以了. 太过巧妙,此处不表,建议大家找到那篇博客. 自行抄写 ...
- C语言中 单引号与双引号的区别
在C语言中,字符用单引号,字符串用双引号.在c1='a';中,'a'是字符常量,必须用单引号."a"表示字符串,包含两个字符,一个是'a',一个是'\0'. 用数组来存储字符串. ...
- 感谢Sylvia的技术支持
感谢Sylvia的技术支持,让Tabb有了生命力.