开发者社区> 张振磊> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ORACLE的dblink突然连不上的问题分析

简介:         昨天中午10点,突然接到总经理电话,说有客户反应LIS和PACS无法收费了,必须马上给处理掉。
+关注继续查看

        昨天中午10点,突然接到总经理电话,说有客户反应LIS和PACS无法收费了,必须马上给处理掉。但是客户端PC却能连接到oracle服务器,没有使用dblink的业务运行都正常。LIS和PACS计费由于要连接不同的数据库,使用了dblink。经过初步排查发现dblink无法连接了,重新创建dblink也不好用。突然想到,会不会是服务器的所有端口号被占满了呢?因为以前有家客户的服务器就是由于所有端口号被占用,造成了数据库无法备份。当时查到所有端口号被占用后,我咨询了一位比较熟悉ORACLE的同事。他告诉我可能是服务器中病毒了。虽然当时客户对服务器中毒的解释深表怀疑,但是还是联系硬件厂商对服务器进行了查杀病毒并重启了服务器,服务器重启之后问题解决了。我让现场工程师查了一下,果然服务器所有端口号被占用了。

        难道又是病毒在作怪?这次我自己都开始怀疑了,这种情况不同的客户都出现过,应该不太可能是病毒的原因。由于两家客户用的都是windows操作系统。我开始怀疑是不是操作系统的问题。有了这样的想法之后,终于在微软官网上面找到了答案,的确是操作系统bug。官网是这样描述的:All the TCP/IP ports that are in a TIME_WAIT status are not closed after 497 days from system startup in Windows Vista, in Windows 7, in Windows Server 2008 and in Windows Server 2008 R2。Windows Vista,Windows 7,Windows Server 2008,Windows Server 2008 R2,这些操作系统在启动第 497 天后,将不关闭 TIME_WAIT 状态的所有 TCP/IP 端口。这样的话,所有端口号很快就会被占满的。由于dblink需要临时端口号,当没有端口号可用的时候,dblink就无法使用了。

        由于客户比较着急,我建议他们立即重启服务器。但是时间是中午10点,虽然是周末,但是业务量还是比较大的,客户不同意重启服务器。通过查看使用dblink的源码,发现dblink跨数据库操作只是为了避免并发。在确认暂时注释掉dblink对业务影响不是很大的情况下,我让现场工程师把dblink相关的操作给注释掉了。业务马上恢复了正常。

        其实我一直反对在业务中使用dblink的,这样的设计方法,直接从数据库层面发生了耦合,完全是不合理的。虽然暂时能收费了,我们还得尽快修改业务流程,避免数据库层面耦合的发生。当然了,说服客户对操作系统安装补丁也是不可缺少的工作。

        现在想来,第一次出现端口号被占满的时候,告知客户服务器中毒是错误的,那次能解决问题不是因为杀了毒,而是因为服务器重启了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
创建Oracle DBLink及同义词方法
有时业务经常需要跨库执行SQL语句,就需要创建两个数据库之间的链接对象或通过同义词来实现。
0 0
Oracle dblink的连接模式的关系测试总结
Oracle dblink的连接模式的关系测试总结这篇主要介绍一下database link由于连接数据库的方式不同遇到的一些问题,我们知道连接ORACLE服务器的模式一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。
1454 0
Oracle通过DBLink连接MySQL
Oracle通过创建DBLink连接MySQL,查看修改MySQL表数据
6799 0
Oracle跨服务器访问使用dblink
当要夸服务器访问数据库时,我们可以使用dblink建立连接服务器间的通道,本地创建了远程数据库的dblink后,访问远程服务器的库就像操作一个库一样了。 如果需要创建全局 DBLink,首先要确定用户有创建 dblink 的权限: 使用此语句查看:select * from user_sys_pr...
1361 0
oracle通过dblink连接mysql配置详解(全Windows下)
oracle通过dblink连接mysql配置详解(全Windows下)http://www.bieryun.com/3394.html 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也没花多长时间,就是刚开始走了一.
2476 0
+关注
张振磊
系统架构师,软件设计师,oracle认证专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
EasyDBforOracle— 基于阿里云的Oracle最佳实践
立即下载
Oracle云上最佳实践
立即下载
迁移 ORACLE 最佳实践
立即下载