oracle 大量连接导致数据库不能登录
系统遇到过几次这种问题,一个系统申请的session数过大,导致数据库进程数满,无法连接的问题。
pl sql develope 报的错误是:ORA-12170:TNS:链接超时
oracle用户登录服务器,使用dba身份进入sqlplus:
sqlplus / as sysdba
报错信息如下:
SQL*Plus: Release 11.2.0.1.0 Production on Thu Feb 1 18:34:46 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-00020: maximum number of processes (1000) exceeded
线程数超过最大值1000了。
由于oracle 线程数超过最大,所以不能登录了。(当然,sqlplus / nolog 是可以登的,但是不能用)
1、这个时候,就只有关闭oracle 的监听:
lsnrctl stop # start 启动 status 查看状态
关闭了监听,就不会有新的用户登录进来,也不会生成新的session,占用process了。
稍等一下,就可以使用sqlplus / as sysdba 登录了(oracle 会保存一些已经关闭的session,这些session会被标记为“kill”状态,2小时候清除,所以关闭监听后,一会就会,process 使用就会掉一点下来)
2、这个时候,执行SQL:
select count(1) from v$session;
查看session使用情况。
3、执行SQL:
select machine,count(1)coun from v$session group by machine order by 2 desc
查看session数最多的机器(也可以换成user/program)
4、这样,就找到占用session多的机器、用户、程序。然后执行如下SQL:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.machine = 'venn01';
注意最后一个条件,换为上一步查出来的数据,字段也要改下
spid即为占用session最多的机器、用户、程序的线程号(同系统进程号)
5、执行:
kill -9 spid
即可杀掉session(见效快),参见我的博客:关于oracle的锁表解决session marked for kill
6、这个时候,就可以使用pl sql developer登录了,执行SQL
select 'kill -9 '||spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.machine = 'venn01';
7、可以打印出kill 命令,直接copy 一列,粘贴到服务器上执行,就搞定了。
科普一下oracle的session和process
session : 指用户连接的session
process : 指session执行的线程
session 可以从 v$session 表查看,process 可以从v$process 表查看,
session和process 表的关系为:
select s.sid,p.PID,s.*,p.*
from v$session s,v$process p
where s.paddr=p.addr
session表中保存了process的地址。
select * from v$parameter
where name like 'sessions' or name like 'processes'
在v$parameter 表可以查看session和process的配置,建议配置session 略大于process,可以修改(重启生效):
SQL> alter system set processes=500 scope=spfile;
SQL> alter system set sessions=555 scope=spfile;
也可以这样 查看:
SQL>show parameter processes;
SQL>show parameter sessions;
oracle 大量连接导致数据库不能登录的更多相关文章
- oracle远程连接服务器数据库
oracle远程连接数据库,需要配置本地服务,具体步骤如下: 1. 2.添加新的服务 3.输入服务名(例如:orcl3即服务器数据库名) 4.选择TCP协议 5.输入服务器IP(192.268.10. ...
- ORACLE 配置连接远程数据库
ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...
- 3月9日(用 DBHelper 工具连接 mysql 数据库 实现登录验证)
一. 用DBHelper 与mysql 连接 实现最简单的登录验证. (1)新建 web project ----->选择src导入 DBHelper 工具包-------->选择web ...
- 修改oracle系统参数spfile导致数据库无法启动解决
错误示范: SQL> alter system set nls_date_format='yyyy-mm-dd 24hh:mi:ss' scope=spfile;System altered.我 ...
- oracle动态采样导致数据库出现大量cursor pin s wait on x等待
生产库中,突然出现了大量的cursor pin s wait on x等待,第一反应是数据库出现了硬解析,查看最近的DDL语句,没有发现DDL.那么有可能这个sql是第一次进入 在OLTP高并发下产生 ...
- Java连接SqlServer2008数据库(转)
Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下 ...
- Java连接SqlServer2008数据库
Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下 ...
- 安装好Oracle和PLSQLDeveloper后,PLSQLDeveloper登录时没有可选数据库和连接为问题
1.登录PL/SQL Developer 这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files ...
- ADO.NET连接到数据库(oracle)
本文摘抄于http://www.cnblogs.com/luluping/archive/2009/10/13/1582737.html,如有侵权,请联系博主. OracleConnection 对象 ...
随机推荐
- white-space和word-wrap和word-break所表示的换行和不换行的区别
一.前言 使得文本换行有很多方式, <br/>标签元素,能够强制使得所在位置文本换行 <p>元素,<div>设定宽度,都可以对文本内容实现自适应换行 对于长单词或者 ...
- PlayerPrefs Elite v1.4.3
PlayerPrefs EliteProtect your game from cheating and modification for items, levels, highscores or s ...
- f5健康检查
1.1)一般pool的健康检查 Pool member 2)检查member的多个端口,若有任意一个端口down,则切换到另一member Pool的健康检查不填,pool member的健康检查填多 ...
- Python: 浅淡Python中的属性(property)
起源:项目过程中需要研究youtube_dl这个开源组件,翻阅其中对类的使用,对比c#及Delphi中实现,感觉Python属性机制挺有意思.区别与高级编程语言之单一入口,在类之属性这一方面,它随意的 ...
- 在别家网站上执行自己的js代码(谷歌浏览器)(谷歌扩展程序)
@参考文章1 @参考文章2 日前针对一家投标网站进行了程序干预,且一定程度的干预成功,把方法给大家提取分享出来,感谢上述两篇博文 测试网站:百度https://www.baidu.com/ 测试步骤 ...
- iOS 证书申请新步骤
2018iOS完整的证书申请和打包过程 - 简书https://www.jianshu.com/p/2b3c2693f4f2
- [leetcode]311. Sparse Matrix Multiplication 稀疏矩阵相乘
Given two sparse matrices A and B, return the result of AB. You may assume that A's column number is ...
- java 爬虫
由于项目需求,综合了几种考虑方案,准备使用java 爬虫进行数据的获取,不用自己去费劲的想逻辑的实现 使用java爬虫之前,我们必须要掌握的知识: 1. 对前端HTML的元素有一定的认识 2. 使用h ...
- Python 内置函数 memoryview
转载自:https://www.cnblogs.com/sesshoumaru/p/6035548.html 英文文档: class memoryview(obj) memoryview object ...
- cookie session ORM 操作
. ORM增删改查操作 http://www.cnblogs.com/liwenzhou/p/8660826.html . 单表增删改查 . 单表的双下划线操作 . 外键的跨表查询 . 正向查询 . ...