从上周起,服务器Oracle数据库出现问题,用不到半天,就会报maxsession(150)的问题,肯定是数据库的会话超过最大数了。
由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。
处理方式不外乎两种:扩大oracle最大session数以及清除inactive会话,当然还有,就是从数据库连接池和程序bug上面下手。
从各处收集了一些查看当前会话的语句,记录一下:
1.select count(*) from v$session;
select count(*) from v$process;
查看当前总会话数和进程数,这两个视图就是跟会话及进程有关的重要视图啦,信息都是从这里面取的。
2.查询那些应用的连接数此时是多少
select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b
where a.ADDR = b.PADDR and b.USERNAME is not null group by
b.MACHINE , b.PROGRAM order by count(*) desc;
3.查询是否有死锁
select * from v$locked_object;
如果查询结果为no rows selected,说明数据库中没有死锁。否则说明数据库中存在死锁。
接下来说明一下会话的状态:
1.active 处于此状态的会话,表示正在执行,处于活动状态。
2.killed
处于此状态的会话,表示出现了错误,正在回滚,当然,也是占用系统资源的。还有一点就是,killed的状态一般会持续较长时间,而且用windows下
的工具pl/sql developer来kill掉,是不管用的,要用命令:alter system kill session
'sid,serial#' ;
3.inactive
处于此状态的会话表示不是正在执行的,比如select语句已经完成。我一开始以为,只要是inactive状态的会话,就是该杀,为什么不释放呢。其
实,inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在
oracle中直接设置超时时间,也是有两种方法,区别暂时还不清楚:
1.修改sqlnet.ora文件,新增expire_time=x(单位是分钟)
我的sqlnet.ora位置在D:\oracle\ora92\network\admin
2.通过ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 命令修改,记得重启下oracle。
===============
另外一种解决方法:
select A.SID,B.SPID,A.SERIAL#,a.lockwait,A.USERNAME,A.OSUSER,a.logon_time,a.last_call_et/3600 LAST_HOUR,A.STATUS,
'orakill '||sid||' '||spid HOST_COMMAND,
'alter system kill session '''||A.sid||','||A.SERIAL#||'''' SQL_COMMAND
from v$session A,V$PROCESS B where A.PADDR=B.ADDR AND SID>6
================
一个自动杀 的job
CREATE OR REPLACE PROCEDURE "KILL_SESSION" AS
v_sid number;
v_serial number;
killer varchar2(1000);
CURSOR cursor_session_info is select sid,serial# from v$session
where type!='BACKGROUND' and status='INACTIVE' and last_call_et>2700
and username='ICWEB' and machine='orc';
BEGIN
open cursor_session_info;
loop
fetch cursor_session_info into v_sid,v_serial;
exit when cursor_session_info%notfound;
killer:='alter system disconnect
session '''||v_sid||','||v_serial||''' post_transaction immediate';
execute immediate killer;
end loop;
dbms_output.PUT_LINE(cursor_session_info%rowcount||' users with idle_time>2700s have been killed!');
close cursor_session_info;
END;
/
这样做其实还是治标不治本,最好能够解决连接池自动释放idle进程的问题
分享到:
相关推荐
一、问题的提出很多的时候我们迅速的杀掉Oralcle的一些session,理由大体如下: 1、 一些时候,由于我们的数据量很大,相应的事务大并且多,在做shutdown immediate的时候会花费好多的时间,而我们却想用shutdown ...
DECODE(C.STATUS, 'INACTIVE', '不活动', 'ACTIVE', '活动') 活动情况, C.SERVER, C.SID, C.SERIAL#, C.PROGRAM 连接方式, C.LOGON_TIME FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C, v$lock ...
本文档为5GNR RRC_IDLE 和RRC_INACTIVE态描述,描述了这两个状态的主要任务,以及相应的服务类型。根据3GPP协议翻译整理而成,仅供学习。
1、按照redo的状态可以分为current、active和inactive; 2、按照数据库归档模式可以分为归档和非归档; 3、按照脏块有没写入数据文件可以分为有和无; 4、按照损坏时数据库的状态可以分为在线和关闭;
Inactive 和 current 状态的 redo 日志需要完成恢复 B. Online 和 Archived 日志需要实例恢复 C. 最后一个 checkpoint 之后的所有 redo 信息都要应用到数据文件 D. 所有记录在 current 状态日志中直到检查点位置...
使用 Inactive Logout 插件可以自动终止非活跃的用户会话,从而在用户离开无人参与的会话时保护站点。 该插件非常易于配置和使用。安装并激活插件后,只需从插件设置中配置空闲超时即可。然后,现在任何长时间无...
a vb6 code about howto_close_if_inactive
INACTIVE-httpmzl.laghe-archive-软件发布机制的流程文档.zip
suruga, 在 Rust 中,[INACTIVE] TLS 1.2实现 suruga是 TLS 1.2的Rust 实现。它目前实现了 TLS 1.2的核心部分,NIST的P-256 ECDHE 和 chacha20-poly1305.用法extern crate suruga;use
An add-in that helps you hide ’inactive’ pieces of your code in include files(42KB)
nadeko, [INACTIVE] 常数时间 Rust 实验 nadeko是一个实验性的语法扩展,它将函数转换为amd64汇编代码。比如,#[const_time]pub fn add3(a: u8, b: u8, c: u8) -> u8 { return a + b +
SQL> SELECT KTUXEUSN, KTUXESLT, ...='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ---------------- ------------------------ ---------- 13 5 47447 A
不活动 - 没有进展
参数token : required的GitHub个人访问令牌,用于有权访问存储库和组织的用户,特定权限: read:org , repo , user:email organization : required要处理的组织的名称since :用来收集日期信息的日期,格式为...
假如你引入之后发现页面的样式和组件都挂载了,但是console控制台会报错,说xxxx组件没有register,这个时候很有可能是你的vant插件版本有问题,重新下载一个最新的vant就可以了,现在是2.6.0版本 好,接下来继续 在...
CSS-Buddy, 在图层上,[INACTIVE] 一个草图 3插件,允许你使用 CSS 允许你在图层上使用CSS的草图 3插件。v0.0.3注意:这个插件还处于开发早期阶段。 点击这里 riiiight查看演示( gif在这一页 bogged ) 。用法安装...
错别字 帮帮我 :)开始$ npm ... 目前仅是一个文件,但是方法将被扩展并链接到数据库以保存搜索索引。 在server.js文件中,现在使用有GitHub OAuth示例。 另外,还要向喊出色的。 :folded_hands_dark_skin_tone:
为了使此扩展程序正常工作,您必须在Chrome标志中启用选项卡音频静音UI控件,方法是:chrome:// flags /查找启用选项卡音频静音UI控件。 单击启用。 重新启动Chrome。 瞧! 在此处获取专业版:...
在 EPSFB 呼叫场景在振铃阶段,如没有背景数据流量传输,基站 user-inactive 定时器超时后释放 4G-RRC 连接,终端自主返回至5G。用户自主返回 5G,5G 不支持 VoNR,未重新发起 QCI1 的建立,导致流程中断。(目前已...