重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
DCD: Dead Connection Detection ,可以用于检测、标记僵死而没有断开会session,再由PMON进行清理,释放资源。
开启DCD,只需要在服务端的sqlnet.ora文件中添加SQLNET.EXPIRE_TIME参数,单位为分钟:
我们提供的服务有:成都网站制作、成都做网站、微信公众号开发、网站优化、网站认证、衡阳县ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的衡阳县网站制作公司
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时间,就可以避免这一情况的发生。