今天有客户反馈应用测试连接Oracle数据库的会话半小时左右未做操作就会被中断,报错ORA-3113,询问数据库是否有这样的超时设置,能否取消掉这个限制?

登上环境查看监听日志发现连接的IP和数据库IP不是同一网段,故询问中间是否有防火墙设备,得到肯定的答复后,再结合实际的现象,基本也就确认是由于防火墙默认强制断开一段时间内(这里也就是半小时)都是空闲状态的会话,然后会话再做操作时就会发现原连接已经被断开,报错ORA-3113,然后只能重连。

防火墙涉及其他部门管理,协调比较麻烦。还好Oracle有DCD(Dead Connection Detection)这个功能特性,主要就是设置一个时间比如10分钟,那么每隔10分钟Oracle就会发一个空包给连接会话的客户端,防火墙发现会话变为活跃就会重新计时,这样也可以间接解决这个问题。

配置DCD的方法非常简单,就是在监听对应的sqlnet.ora 配置文件中添加1行内容:

sqlnet.expire_time = 10

含义可以从sample示例中找到说明:

########################
#sqlnet.expire_time = 10
########################
#
#Possible values: 0-any valid positive integer! (in minutes)
#Default: 0 minutes
#Recommended value: 10 minutes
#
#Purpose: Indicates the time interval to send a probe to verify the
# client session is alive (this is used to reclaim watseful
# resources on a dead client)
#
#Supported since: v2.1

设置完成后要重启监听,或者reload监听生效。

lsnrctl reload

但这只对新的连接有效,对于已经存在的连接是没作用的,针对这些连接必须要杀掉重连才可以,或者干脆等到他们碰到ORA-3113,再进行重连。

在客户反馈的数据库均配置好DCD,reload监听,通知客户测试,告知新的连接才有效。

最终经过客户一下午的观察,确认之前反馈的问题已经得到解决。

Oracle配置DCD避免会话被防火墙强制断开的更多相关文章

  1. oracle配置访问白名单教程

    出于提高数据安全性等目地,我们可能想要对oracle的访问进行限制,允许一些IP连接数据库或拒绝一些IP访问数据库. 当然使用iptables也能达到限制的目地,但是从监听端口变更限制仍可生效.只针对 ...

  2. 理解oracle中连接和会话

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp44 理解oracle中连接和会话 1.  概念不同:概念不同: 连接是指物 ...

  3. Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?

    Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网 ...

  4. ORACLE配置tnsnames.ora文件实例

    ORACLE配置tnsnames.ora文件实例客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames. ...

  5. oracle 配置服务端

    oracle 配置服务端,类似我们配置java环境一样 防止乱码的配置: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 选择数据库的配置(重要) ...

  6. oracle 配置 自启动 和 关闭

    今天在看oracle自启动脚本,突然有点时间,总结一下!!! 第一次写博客,大家随便看看就好,有错误麻烦提醒下,不喜欢别喷,主要是锻炼自己,形成写博客的好习惯. 刚毕业,现在还没转正,在干运维和自学d ...

  7. ORACLE 配置连接远程数据库

    ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...

  8. Hibernate api 之常见的类(配置类,会话工厂类,会话类)

    1:Configuration :配置管理类对象 1.1:config.configure(): 加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cf ...

  9. 在oracle配置mysql数据库的dblink

    本文介绍如何在oracle配置mysql数据库的dblink:虽然dblink使用很占资源:俗称“性能杀手”.但有些场景不得不使用它.例如公司使用数据库是oracle:可能其他部门或者CP合作公司使用 ...

  10. PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...

随机推荐

  1. 【调试】kdump原理及其使用方法

    kdump机制 简介 Kdump是在系统崩溃.死锁或死机时用来转储内存运行参数的一个工具和服务,是一种新的crash dump捕获机制,用来捕获kernel crash(内核崩溃)的时候产生的cras ...

  2. freeswitch的mod_xml_curl模块

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 随着fs服务的增多,每一台fs都需要在后台单独配置,耗时耗力,心力憔悴. 如果有一个集中管理配置的配置中心,统一管理所有fs的配置, ...

  3. python 设计模式 开篇 第1篇

    1. 设计模式的定义 软件设计中普遍存在的 反复出现的 各种问题 所提出的解决方案 首先,什么是软件设计? 系统开发 项目开始的时候 需要做 需求分析 软件系统设计 软件建模 类的设计 接口的设计 等 ...

  4. 使用ensp搭建路由拓扑,并使用BGP协议实现网络互通实操

    转载请注明出处: 1.使用ENSP搭建的网络拓扑如下: 数据准备: 设备名称 接口 IP地址 DeviceA Loopback 0 1.1.1.1/32 Eth 1/0/0 172.16.0.1/16 ...

  5. idea 配置 service 服务,多模块同时启动

    转载请注明出处: 1,打开IDEA项目 .idea 下 的workspace.xml 2,查找"RunDashboard" 节点 3,添加如下内容 <option name= ...

  6. [转帖]Oracle如何重启mmon/mmnl进程(AWR自动采集)

    https://www.cnblogs.com/jyzhao/p/10119854.html 学习一下 环境:Oracle 11.2.0.4 RAC现象:sysaux空间满导致无法正常生成快照,清理空 ...

  7. [转帖]tiup cluster scale-in

    https://docs.pingcap.com/zh/tidb/stable/tiup-component-cluster-scale-in tiup cluster scale-in 命令用于集群 ...

  8. [转帖]修改vcenter数据库账号密码

    1.修改sqlserver sa账号密码 2.停止vcenter服务 cd C:\Program Files\VMware\vCenter Server\bin service-control --l ...

  9. [转帖]GC 日志

    https://www.xjx100.cn/news/188814.html?action=onClick 垃圾回收器的发展历史 1999年:随JDK1.3.1一起来的串行方式Serial GC(第一 ...

  10. 从DevOps状态报告看技术团队的文化建设

    本文源自一次内部分享,借由此机会又把历年的DevOps状态报告翻看了一遍,其实大多数时候我们对于DevOps的理解都在于流程,工具,实践这些看得见摸得着的东西,但就像文末的几点思考所说的那样,我们一直 ...