日期:2014-05-17  浏览次数:21351 次

跨库查询 报ora-12170连接超时
我装的Oracle 11G通过创建database link来实现同服务器的跨库查询,刚开始数据在公司服务器上运行的蛮好,但是昨天迁移到电信的服务器上,今天就报了这个错误,我在网上也查了相关的信息,都不能解决。电信的服务器的防火墙是关闭的,1521端口也可以直接访问,本地的tnsnames.ora文件也没有什么问题,请各位帮忙解决此问题,在线等急!!!
------解决方案--------------------
本地不用link,可以连接远程的库吗,用username/password@servername的方式
------解决方案--------------------
这个应该和程序没有太多关系,而是和通迅质量有关系,在公司局域网(LAN)内,网络比较稳定,通迅基本不会断。移到电信服务器后,通迅变成在WLAN上了,由于各种原因,导致通迅链路断的情况是经常发生的事情,因此dblink报超时也就不足为奇。BTW,我们使用电信内部DCN网,dblink也偶尔会超时。

处理建议
------------------------
(1) 不用dblink,自写服务器方式进行数据交换,而且用短联接。
(2) 如果坚持用dblink,碰到这个错误代码重新发该sql指令若干次。
------解决方案--------------------
像这样的情况你可以直接让电信把端口打开就可以了。你只要打开了端口防火墙打开是不会有影响你访问数据库的。
------解决方案--------------------
问题还出在网络上?到外网那个服务器上,看看listener.log,看看请求连接的记录对不对
------解决方案--------------------
在你创建 db link的服务器上 的 /etc/hosts 中加入 电信服务器的 ip地址 和服务名 如:1923.168.1.111  电信servername
------解决方案--------------------
如果的创建 db link的机器是 windows 的 那么在 system32\drivers\ect\hosts
------解决方案--------------------
引用:
也不应该是服务器延迟的原因,不可能每次延迟,而且公司在宜昌和黄石的试点系统服务器也是挂在外网上面的,没出现什么问题。


你首先弄明白内网和外网的差别,其实要弄明白放在A地和B地以及放在电信、移动、联通这些运营商之间的差别。

一个应用程序在内网上跑得好好的,放到外网上就跑不下来,这种情况是很多的。尤其是原来通迅质量在8kbit的拨号年代。

如果不相信网络延迟、路由器交互故障等等原因,那就想办法验证不是,而不是在这里认为不是。