oracle 的PLSQL远程连接oracle服务器后查询卡死的问题解决

前几天遇到个问题,我们需要连接子公司的数据库取查询业务数据,数据库是oracle11g的。由于子公司和总部有物理网络的隔离,因此在连接对方的时候中间经过了防火墙,网络管理员配置访问策略后,我们使用PLSQL客户端去查询验证数据,发现可以正常登录客户端,但是只要执行查询语句,PLSQL软件就卡死了,然后还无法取消,最后只能通过任务管理器强行杀掉进程,每次执行都是这样的。

然后换了其他几个软件,发现sqlplus可以正常使用,但是一旦换了PLSQLDevelpoer的时候就成老样子了,当时觉得可能是驱动的问题,因为我们用的驱动是10g32bit的,为了验证这个问题,把客户端的驱动升级到了11g64bit,问题依旧存在。

然后想到是不是网络限速导致的,和两边的网关管理员再三确认,两边都表是没有配置任何形式的限速。

一时理不清头绪,纠结了好几天。不断的查看各种网帖,最后终于找到个类似的问题,里面说是防火墙的问题,于是赶紧联系网管查了一下,我们的防火墙上还真有这个选项 ,按照建议把这个选项取消后,一切都正常了

又一次长经验了。

如果防火墙是 JUNIPER的,需要调整下设置:在juniper设置里面Security -> ALG -> SQL 的勾去掉

在 JUNIPER JUNOS 6.1以下版本使用:set alg sql disable;

在 JUNIPER JUNOS 6.2,6.3版本使用:unset alg sql enable;

oracle 的PLSQL远程连接oracle服务器后查询卡死的问题解决

如果防火墙是cisco的,对应的是ALG的INSPECT SQLNET功能,把这些选项勾掉,遇到的问题就可以解决。