kill session真的能杀掉进程吗
session1 确认sid
SYS @ prod > select userenv('sid') from dual;
USERENV('SID')
--------------
144
session2 确认sid
SYS @ prod > select userenv('sid') from dual;
USERENV('SID')
--------------
145
session1 查询当前数据库有哪些连接
SYS @ prod > select p.spid,p.pid,p.username,ss.sid,ss.serial# from v$process p,v$session ss where p.addr=ss.paddr and ss.username is not null;
SPID PID USERNAME SID SERIAL#
------------ ---------- --------------- ---------- ----------
12244 18 oracle 144 279
12269 19 oracle 145 100
操作系统层面查看以上两个进程
[root@ora10g ~]# ps -ef |grep 12244
oracle 12244 12243 0 18:32 ? 00:00:00 oracleprod (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root 12298 12272 0 18:34 pts/4 00:00:00 grep 12244
[root@ora10g ~]# ps -ef |grep 12269
oracle 12269 12268 0 18:32 ? 00:00:00 oracleprod (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root 12300 12272 0 18:34 pts/4 00:00:00 grep 12269
登陆session1 kill session2
SYS @ prod > alter system kill session '145,100';
System altered.
再次查询2个会话的状态,可以发现 session2 仍然存在,但是 session status 变为 killed
SYS @ prod > select p.spid,p.pid,p.username,ss.sid,ss.serial#,ss.status from v$process p,v$session ss where p.addr(+)=ss.paddr and ss.username is not null;
SPID PID USERNAME SID SERIAL# STATUS
------------ ---------- --------------- ---------- ---------- --------
12244 18 oracle 144 279 ACTIVE
145 100 KILLED
操作系统层面查看进程状态
[root@ora10g ~]# ps -ef |grep 12244
oracle 12244 12243 0 18:32 ? 00:00:00 oracleprod (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root 12372 12272 0 19:00 pts/4 00:00:00 grep 12244
[root@ora10g ~]# ps -ef |grep 12269
oracle 12269 12268 0 18:32 ? 00:00:00 oracleprod (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
root 12379 12272 0 19:01 pts/4 00:00:00 grep 12269
查询该进程的详细信息
SYS @ prod > select p.spid,p.pid,p.username,ss.sid,ss.serial# from v$process p,v$session ss where p.spid=12269;
SPID PID USERNAME SID SERIAL#
------------ ---------- --------------- ---------- ----------
12269 19 oracle 143 159
12269 19 oracle 144 279
12269 19 oracle 145 100
12269 19 oracle 155 1
12269 19 oracle 156 1
12269 19 oracle 160 1
12269 19 oracle 161 1
12269 19 oracle 162 1
12269 19 oracle 163 1
12269 19 oracle 164 1
12269 19 oracle 165 1
12269 19 oracle 166 1
12269 19 oracle 167 1
12269 19 oracle 168 1
12269 19 oracle 169 1
12269 19 oracle 170 1
kill session
SYS @ prod > alter system kill session '145,100';
System altered.
SYS @ prod > select p.spid,p.pid,p.username,ss.sid,ss.serial# from v$process p,v$session ss where p.spid=12269;
SPID PID USERNAME SID SERIAL#
------------ ---------- --------------- ---------- ----------
12269 19 oracle 143 174
12269 19 oracle 144 279
12269 19 oracle 155 1
12269 19 oracle 156 1
12269 19 oracle 160 1
12269 19 oracle 161 1
12269 19 oracle 162 1
12269 19 oracle 163 1
12269 19 oracle 164 1
12269 19 oracle 165 1
12269 19 oracle 166 1
12269 19 oracle 167 1
12269 19 oracle 168 1
12269 19 oracle 169 1
12269 19 oracle 170 1
操作系统层面杀掉 进程
[root@ora10g ~]# kill -9 12269
结论:先查询session 对应的 spid,然后从操作系统层面kill spid 才可以真正的杀掉进程
以下为 eygle的帖子,做参考
http://www.eygle.com/faq/Kill_Session.htm
最新文章
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现
- PHP大数(浮点数)取余
- 用get方式提交请求的url带有中文参数
- 常用的文件和目录操作命令【转vbird】
- 自定义一个可以使用foreach语句进行迭代的类(IEnumerable)
- Poj 1511 Invitation Cards(spfa)
- [转]javascript函数定义表达式和函数声明的区别
- 使用 HTML5 设计辅助功能
- 深入理解C#第二版笔记
- 十一:Java之GUI图形Awt和Swing
- javaWeb超链接(href)请求-特殊字符处理
- Python第三方库的安装 --Python3
- Nginx访问控制
- Unity Input,生命周期,Light,获取组件
- Linux内核基本装载卸载
- Python3基础系列——枚举类型大揭秘
- Java获取当前时间30天之前的时间
- arcpy调试
- chrome plugins
- LeetCode 80. 删除排序数组中的重复项 II