ORACLE process爆满,大量process没有对应的session
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相关推荐
- 问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0
在用as开发项目的过程中,我碰到了这个错误,在网上找到了如下的解决方法,做下总结: 被编译的代码或资源有问题( finished with non-zero exit value 1): 出现这种编译 ...
- java process 重启_JAVA Process启动sh 后的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import android.annotation.SuppressLint; import android.os.*; import java.io.* ...
- 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 ...
- Oracle ABP(Autotask Background Process)
ABP相当于自动任务与调度程序之间的中介,其主要作用是将自动任务转换成Autotask作业,供调度程序执行.同样重要的是,ABP还维护所有任务执行的历史记录.ABP将其专用资料档案库存储在sysaux ...
- checkpoint process vs writer process vs wal writer process
开始 我目前的理解是: 如果我执行了一条SQL文,那么 先是相关数据写到 wal buffer里, 然后再写到 data buffer(shared_buffer)里. 这之后, 由于wal wr ...
- python process pool_python multiprocessing.Process,multiprocessing.Pool区别(不同之处)
我们知道GIL Lock禁用了Python中的多线程功能.在Python中multiprocessing提供了两个用于多进程的类,即Process和Pool类.在以下各节中,我已对使用pool和pro ...
- python process 函数_Python Process创建进程的2种方法详解
前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...
- Dirichlet Process 和 Dirichlet Process Mixture模型
[本文链接:http://www.cnblogs.com/breezedeus/archive/2012/11/05/2754940.html,转载请注明出处.] Dirichlet Process ...
- b2g process 和nuwa process 通信
它们通信的目的在于: b2g要发消息给nuwa,让它fork出web app进程.它们发生在nuwa进程已经完全启动,并准备好fork 其他app子进程.猜想,用的是socket pair 建立关系, ...
最新文章
- java计算5 5_Java基础学习笔记 -- 5(运算符)
- sysbench性能压测以及mysql性能压测
- 51nod 1499 (最小割)
- java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
- argo 现水下永动机器人_现水下永动机器人 水下永动机器人有什么作用?
- 去掉input密码框自动补全功能
- oracle 的跨天查询,考勤跨天如何统计 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...
- 高级政工师具备的能力_北京市高级政工师评审条件
- Python min() 方法
- menu什么意思中文意思_pipeline什么意思
- 实例标识助力您的应用迁上云端
- MongoDB 分组统计
- Docker 方式 MySQL 主从搭建
- 单机搭建Android开发环境(二)
- 光滑噪声数据常用的方法_数据挖掘部分课后习题
- layDate时间控件
- 语音合成软件-完全免费版本
- python如何从字符串中提取数字_如何在Python中从字符串中提取数字?
- Flash选择合适的稳压芯片
- 多维数组展平的几种方式