ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在windows下使用orakill清除oracle线程

在windows下使用orakill清除oracle线程

原创 Linux操作系统 作者:husthxd 时间:2005-03-07 00:00:00 0 删除 编辑

windows下使用orakill清除oracle线程


由于windows 2000是基于线程的os,所有的用户session所需的内存均在oracle.exe进程中分配,如果想单独kill某个用户的会话并释放该会话所占用的资源可以使用oracle的提供的工具orakill.

      1.         orakill的基本用法

C:>orakill sid threadid

其中sidoraclesid,threadid是要kill的线程id

2.         获得线程id

1)      从微软下载中心获得qslice.exe工具,提取线程id.具体用法请参考相关文档.

2)      使用以下查询获得

select p.spid THREADID, s.osuser, s.program 

       from v$process p, v$session s

       where p.addr=s.paddr

       /

       select p.spid "OS Thread", b.name "Name-User", s.osuser, s.program

    from v$process p, v$session s, v$bgprocess b

    where p.addr = s.paddr

    and p.addr = b.paddr UNION ALL

    select p.spid "OS Thread", s.username "Name-User", s.osuser, s.program

    from v$process p, v$session s

    where p.addr = s.paddr

and s.username is not null

/

注意:osuserSYSTEMprogramoracle.exe的线程为oracle的后台进程,如果kill这些进程会导致数据库不可用。

可以用以下查询验证是否为后台进程:

select vb.name NOME, vp.program PROCESSNAME, vp.spid THREADID, vs.sid SID 

       from v$session vs, v$process vp, v$bgprocess vb 

       where vb.paddr <> '00' and 

       vb.paddr = vp.addr and 

       vp.addr = vs.paddr

       /

 

本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

http://blog.itpub.net/post/11/20675 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-21699/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。现就职于广州云图数据技术有限公司,系统架构师。

注册时间:2007-12-28

  • 博文量
    1387
  • 访问量
    3837712