SQLNET.EXPIRE_TIME参数—之防火墙短连接

发布时间:2020-08-11 03:53:15 作者:swq618
来源:ITPUB博客 阅读:1098

DCD: Dead Connection Detection ,可以用于检测、标记僵死而没有断开会session,再由PMON进行清理,释放资源。
开启DCD,只需要在服务端的sqlnet.ora文件中添加SQLNET.EXPIRE_TIME参数,单位为分钟:

SQLNET.EXPIRE_TIME = 10

如果时间达到这个值,server端就是发出一个”probe” packet 给客户端,如要客户断是正常的,这个packet就被忽略,timer重新计时;如果客户端异常中断,则server端就会收到一个消息,用以释放连接。

DCD还可以用于防止防火墙的timeout,例如:

某个系统RMAN备份,在结束时,报:

released channel: dev_0
released channel: dev_1
released channel: dev_2
released channel: dev_3
released channel: dev_4
released channel: dev_5
released channel: dev_6
released channel: dev_7
released channel: dev_8
released channel: dev_9
released channel: dev_10
released channel: dev_11
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06004: ORACLE error from recovery catalog database
ORA-03135: connection lost contact
ORACLE error from recovery catalog database
ORA-03114: not connected to ORACLE

参考文章(ID 729811.1):

+ Is the rman catalog Database running on a different system than the Target Database?
If so, verify with the System Administrators what the TCP/IP timeout is set to.
If there is any firewall between two systems, set the value of SQLNET.EXPIRE_TIME 
to less than the TCP timeout value of the firewall. 
 
+ Increase the value of SQLNET.EXPIRE_TIME in the sqlnet.ora file on both 
target servers if no firewall exists between two systems.
 
+ Increase the value of keepalive interval.

以上这个RMAN报错例子就是由于防火墙设置timeout原因,当client和server在timeout时间内没有数据传输的时候,会话就会被防火墙断开。而设置SQLNET.EXPIRE_TIME参数,使其小于防火墙的timeout时间,就可以避免这一情况的发生。

推荐阅读:
  1. pfSense book之防火墙(一)
  2. LR之参数化学习

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sqlnet.expire 参数 time

上一篇:Vps拨号服务器有什么好用的管理工具?

下一篇:深度 | 张正友:计算机视觉的三生三世 | CCF-GAIR 2019

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》