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

kill session真的能杀掉进程吗的更多相关文章

  1. 找出 alter system kill session ‘sid,serial#’ kill 掉的数据库会话对应进程

    当我们使用alter system kill session ‘sid,serial#’ 在数据库中kill掉某个会话的时候,如果你观察仔细会发现v$session.paddr发生了改变,从而是的不能 ...

  2. oracle kill session

    kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...

  3. Oracle中Kill session的研究(转 出自eagle)

    itpub link: http://www.itpub.net/235873.html 我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: a ...

  4. ORACLE 中KILL session

    我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session 'sid,serial#' ; 被kil ...

  5. oracle查看被锁的表和被锁的进程,杀掉进程

    -- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name ...

  6. Oracle彻底杀掉进程

    kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...

  7. centos下shell脚本kill掉mysql锁表进程【笔记】

    前几天发现服务器上的mysql出现锁表了,show processlist后发现好多都是因为写进session才锁表的,看到这个想起了会不会是硬盘空间不够了,马上查看了服务器硬盘空间,发现都100%了 ...

  8. Kill Session

    有时候创建索引或修改表字段时,会提示资源正忙,可以查出表对应的进程并kill掉 select l.session_id,o.owner,o.object_name from v$locked_obje ...

  9. orakill和ALTER SYSTEM KILL SESSION详解

    --orakill和ALTER SYSTEM KILL SESSION详解[转]-----------------------------------------2013/11/05 一个用户进程偶尔 ...

随机推荐

  1. jstat命令(Java Virtual Machine Statistics Monitoring Tool)

    1.介绍 Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控: - 类的加载及卸载情况 - 查看新生代.老生代及持久代 ...

  2. SQL*Net message to client

    SQL*Net message to client The server (foreground process) is sending a message to the client. 这个wait ...

  3. Spark安装和配置

    hadoop2的安装教程 Spark可以直接安装在hadoop2上面,主要是安装在hadoop2的yarn框架上面 安装Spark之前需要在每台机器上安装Scala,根据你下载的Spark版本,选择对 ...

  4. Scala:(1)变量

    Scala中变量需要注意的地方: (1)val,var val 定义的声明是一个常量,不能改变内容. var定义的声明是一个变量,可以改变其内容 在Scala中,尽可能使用val val answer ...

  5. HDU 5916 Harmonic Value Description 【构造】(2016中国大学生程序设计竞赛(长春))

    Harmonic Value Description Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Ja ...

  6. 游戏开发设计模式之子类沙盒模式(unity3d 示例实现)

    积累提供所有操作(的实现)来定义子类的行为用一个最简单的例子来讲解这个模式玩家操纵的英雄也就是这个游戏的主角会有许多技能,我们想定义许多不同的技能,来让玩家使用.首 先我们定义一个skillBase类 ...

  7. 如何解决缺少OCX问题,如何在win7 64位下注册OCX

    最近原来的系统很慢,重装win7. 今天跑文章格式化编辑器,结果提示找不到Comctl32.ocx. 1. 上网搜索下载Comctl32.ocx,直接拷贝到c:\windows\system32不行, ...

  8. lightoj1057 - Collecting Gold (tsp问题)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1057 题目大意:在二维矩阵中,给你一个起点和至多15个的目标点.要你求出从起点出发经过 ...

  9. java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误

    /** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeExcepti ...

  10. JVM分代垃圾回收策略的基础概念

    由于不同对象的生命周期不一样,因此在JVM的垃圾回收策略中有分代这一策略.本文介绍了分代策略的目标,如何分代,以及垃圾回收的触发因素. 文章总结了JVM垃圾回收策略为什么要分代,如何分代,以及垃圾回收 ...