oracle session inactive killed 批量清理
来源:互联网 发布:hadoop编程书籍 编辑:程序博客网 时间:2024/06/05 21:52
上个星期开始,oracle SESSION 老是达到最大连接数,查看oracle SESSION 发现有100多个inactiveSESSION.
可能是由于WEBSPHERE最近老是内存javacore导致websphere出现重启现象。
SID SERIAL# USERNAME PROGRAM MACHINE STATUS
---------- ---------- ------------------------------ ---------------------------------------------------------------- ---------------------------------------------------------------- --------
1 1 ORACLE.EXE PC-200903311241 ACTIVE
2 1 ORACLE.EXE PC-200903311241 ACTIVE
3 1 ORACLE.EXE PC-200903311241 ACTIVE
4 1 ORACLE.EXE PC-200903311241 ACTIVE
5 1 ORACLE.EXE PC-200903311241 ACTIVE
6 1 ORACLE.EXE PC-200903311241 ACTIVE
7 1 ORACLE.EXE PC-200903311241 ACTIVE
8 1 ORACLE.EXE PC-200903311241 ACTIVE
9 14 BASE_BJ JDBC Thin Client PC-200903311241 INACTIVE
10 585 SYS plsqldev.exe WORKGROUP/BOXING10 INACTIVE
13 220 DRV_BX_2010_EXAM plsqldev.exe WORKGROUP/XZ INACTIVE
14 10 VIO_ADMIN JDBC Thin Client PC-200903311241 INACTIVE
15 21 VIO_ADMIN JDBC Thin Client PC-200903311241 INACTIVE
16 95 SYS plsqldev.exe WORKGROUP/BOXING10 ACTIVE
18 374 DRV_BX_2010_EXAM xz INACTIVE
19 193 DRV_BX_2010_EXAM plsqldev.exe WORKGROUP/XZ INACTIVE
20 281 SYS plsqldev.exe WORKGROUP/BOXING10 INACTIVE
21 201 DRV_BX_2010_EXAM plsqldev.exe WORKGROUP/XZ ACTIVE
22 267 SYS plsqldev.exe WORKGROUP/BOXING10 INACTIVE
29 248 DRV_BX_2010_EXAM plsqldev.exe WORKGROUP/XZ ACTIVE
SID SERIAL# USERNAME PROGRAM MACHINE STATUS
---------- ---------- ------------------------------ ---------------------------------------------------------------- ---------------------------------------------------------------- --------
31 354 DRV_BX_2010_EXAM plsqldev.exe WORKGROUP/XZ INACTIVE
32 53 BASE_BJ JDBC Thin Client PC-200903311241 INACTIVE
33 720 VIO_ADMIN BOXING12 INACTIVE
其中,
从各处收集了一些查看当前会话的语句和杀session的方法,记录一下:
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。
==========
自动杀的JOB
- oracle session inactive killed 批量清理
- 清理killed session
- 【Oracle】-【SNIPED和KILLED】-SPINED和KILLED的session清理流程
- ORACLE定期清理INACTIVE会话
- ORACLE 定期清理INACTIVE会话
- ORACLE定期清理INACTIVE会话
- 建立JOB定期清理KILLED的SESSION
- oracle session 的 inactive 状态
- oracle session 的 inactive 状态
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle session active 和 inactive 状态 说明
- Oracle查询session连接数和inactive
- Oracle session连接数和inactive的问题记录
- 将excel表中的数据导入到matlab中
- B-样条曲线:修改节点
- 别为看不懂中央九套而难过了,其实只要你熟习这60个单词就可以喽
- C/C++程序内存分配详解
- 【小阅读^大脑袋】0524 NO.367
- oracle session inactive killed 批量清理
- 3.26如何改变一个视图的背景颜色?
- C#中将dateset查询生成的表中的某个列(列sum)取出来
- 网站ICO标示怎么操作
- EXS与EXSi的区别
- QTP描述性编程
- C# 对Outlook联系人的增、删、查
- java.lang.IllegalStateException: Write attempted after request finished
- 轻量级webserver kepler/thttpd/shttpd简单对比