ORACLE process爆满,大量process没有对应的session

问题现象

oracle process爆满,session会话数只有100多个,执行以下SQL,发现有几千个进程没有对应的会话

select * from v$process b where not exists (select 1  from v$session a where a.PADDR = b.ADDR);

原因

通过查看listener日志发现一台服务器在无限重连ORACLE服务器,关掉相关应用服务以后,问题解决。经排查发现是由于druid数据源配置问题导致的。
搜索listener日志命令:

find /app/oracle -name listener.log

问题复现:

使用sqplus登陆服务器,输入错误的用户名密码:

sqlplus aaa/bbb@orcl

再执行上面的SQL发现数据库多了一个无session的进程:

select * from v$process b where not exists (select 1  from v$session a where a.PADDR = b.ADDR);

记下进程的ADDR:000000011BA2F218。再输入正确的用户名密码,登陆成功后,session建立成功,session的PADDR=000000011BA2F218。

执行DISCONNECT命令:

SQL> disconnect

session注销,但是连接并没有断开,此时进程(000000011BA2F218)又变为无session进程,此时若命令窗口不关闭,则进程会一直存在。

避免此类问题的方法

1、 通过设置INBOUND_CONNECT_TIMEOUT=1.缩短连接回收时间的方式,避免过多的无效进程存在。
2、 编写ORACLE触发器,限制单IP数据库连接数。

参考文章

ORACLE进程说明
为什么数据库中大量的server process没有对应的session?

ORACLE process爆满,大量process没有对应的session相关推荐

  1. 问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0

    在用as开发项目的过程中,我碰到了这个错误,在网上找到了如下的解决方法,做下总结: 被编译的代码或资源有问题( finished with non-zero exit value 1): 出现这种编译 ...

  2. java process 重启_JAVA Process启动sh 后的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import android.annotation.SuppressLint; import android.os.*; import java.io.* ...

  3. STOP: c000021a { Fatal System Error } the initial session process or system process terminated ...

    错误: STOP: c000021a { Fatal System Error } the initial session process or system process terminated u ...

  4. Oracle ABP(Autotask Background Process)

    ABP相当于自动任务与调度程序之间的中介,其主要作用是将自动任务转换成Autotask作业,供调度程序执行.同样重要的是,ABP还维护所有任务执行的历史记录.ABP将其专用资料档案库存储在sysaux ...

  5. checkpoint process vs writer process vs wal writer process

    开始 我目前的理解是: 如果我执行了一条SQL文,那么 先是相关数据写到  wal buffer里, 然后再写到 data  buffer(shared_buffer)里. 这之后, 由于wal wr ...

  6. python process pool_python multiprocessing.Process,multiprocessing.Pool区别(不同之处)

    我们知道GIL Lock禁用了Python中的多线程功能.在Python中multiprocessing提供了两个用于多进程的类,即Process和Pool类.在以下各节中,我已对使用pool和pro ...

  7. python process 函数_Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...

  8. Dirichlet Process 和 Dirichlet Process Mixture模型

    [本文链接:http://www.cnblogs.com/breezedeus/archive/2012/11/05/2754940.html,转载请注明出处.] Dirichlet Process ...

  9. b2g process 和nuwa process 通信

    它们通信的目的在于: b2g要发消息给nuwa,让它fork出web app进程.它们发生在nuwa进程已经完全启动,并准备好fork 其他app子进程.猜想,用的是socket pair 建立关系, ...

最新文章

  1. java计算5 5_Java基础学习笔记 -- 5(运算符)
  2. sysbench性能压测以及mysql性能压测
  3. 51nod 1499 (最小割)
  4. java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
  5. argo 现水下永动机器人_现水下永动机器人 水下永动机器人有什么作用?
  6. 去掉input密码框自动补全功能
  7. oracle 的跨天查询,考勤跨天如何统计 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...
  8. 高级政工师具备的能力_北京市高级政工师评审条件
  9. Python min() 方法
  10. menu什么意思中文意思_pipeline什么意思
  11. 实例标识助力您的应用迁上云端
  12. MongoDB 分组统计
  13. Docker 方式 MySQL 主从搭建
  14. 单机搭建Android开发环境(二)
  15. 光滑噪声数据常用的方法_数据挖掘部分课后习题
  16. layDate时间控件
  17. 语音合成软件-完全免费版本
  18. python如何从字符串中提取数字_如何在Python中从字符串中提取数字?
  19. Flash选择合适的稳压芯片
  20. 多维数组展平的几种方式

热门文章

  1. m4a怎么转换成mp3,4招搞定
  2. 浅谈虚树(虚仙人掌)
  3. 对random.seed()函数的理解
  4. 基于jsp+mysql+ssm高校学生成绩管理系统-计算机毕业设计
  5. 天津理工大学计算机最牛导师,孟祥太_天津理工大学研究生导师信息
  6. 绿布抠像怎么抠干净_AE如何抠取绿幕视频 干净抠像教程
  7. laravel获取最后一条
  8. 视频处理之浮雕效果【附源码】
  9. 144G在线网页制作html系统源码下载
  10. 邮票的制作(1.主要画笔工具2.钢笔工具)