如何杀掉带锁的Oracle进程

原创 2007年09月23日 09:39:00

 经常会遇到一个问题是:在ORACLE中,状态已被置为"killed"的进程长时间锁定系统资源,不释放,有一个比重启数据库更好的方法,就是在操作系统级强行杀掉那些进程。

  1.下面的语句用来查询哪些对象被锁:

  col object_name for a30

  col machine for a20

  select object_name,machine,s.sid,s.serial#

  from v$locked_object l,dba_objects o ,v$session s

  where l.object_id = o.object_id and l.session_id=s.sid;

  2.下面的语句用来杀死一个进程:

  alter system kill session '42,21993'; (其中24,111分别是上面查询出的sid,serial#)

  可以用如下查询批量得到上面类似的语句:

  select 'alter system kill session '''   ||s.sid||','||s.serial#||'''; '

  from v$locked_object l,dba_objects o ,v$session s

  where l.object_id = o.object_id and l.session_id=s.sid;

  3.如果利用上面的命令杀死一个进程后,进程状态被置为 "killed", 但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先获得进程(线程)号:

  select spid, osuser, s.program

  from v$session s,v$process p

  where s.paddr=p.addr and s.sid=#sid; (#sid是上面的sid)

  4.在操作系统中杀掉相应的进程(线程):

  1)在Linux上,用root身份执行命令:

  kill -9 12345(12345是第3步查询出的spid)

  2)在windows 用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:orakill sid thread

  其中:

  sid:表示要杀死的进程属于的实例名

  thread:是要杀掉的线程号,即第3步查询出的spid。

  例:c:>orakill orcl 12345

  完全可以写一个组合查询的存储过程来自动执行上述四步操作,方便地杀光所有不自动释放资源的进程,但一般情况下不推荐这样做,毕竟在系统中用root用户kill进程本身就是带有一定风险的!

如何完全杀掉带锁的进程并释放资源

Oracle数据库管理人员经常会遇到这样的问题:状态已被置为"killed"的进程长时间锁定系统资源不释放。通常的做法是重启数据库,但这样就以为着数据库服务的中断。这里介绍另外一种好用方便的方法: 在...

oracle的后台进程杀掉会有什么影响

以下练习出自于DBA思想的天空: 数据库版本为: 10.2.0.1.0在启动数据库之后,出现的进程为 oracle 20037 1 0 06:46 ? ...

ORACLE数据库杀掉会话进程的三种方式及案例分析

在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial#'杀掉一个会话进程,但是使用这个SQL语句杀掉会话后,数据库并不会立即释放掉相关的资源...

Oracle杀掉系统进程的描述

Oracle杀掉系统进程的描述 2012-01-18 00:00中国IT实验室佚名 字号: A+ | A-   在导入附件表AFFIX的时候,数据量很小就1w多条数据,但是...
  • lawn
  • lawn
  • 2012年02月01日 10:32
  • 332

oracle后台进程杀掉会怎么样

在很多情况下我们需要杀死后台进程。比如,系统出现了大量挂起的现象,而通过HANGANALYZE工具分析,我们发现元凶是一个后台进程,那么是否要通过杀掉这个进程来解决问题,就要十分谨慎了。因为有些后台进...

oracle查看锁表进程,杀掉锁表进程

锁定老帖子 主题:oracle查看锁表进程,杀掉锁表进程 精华帖 (0) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0) 作者 正文 xiarilian12...

Android进程结束杀掉子线程Demo

  • 2015年12月28日 21:21
  • 1.6MB
  • 下载

vb杀掉WAR3(魔兽争霸3)进程

  • 2008年12月30日 14:03
  • 2KB
  • 下载

sql server查看当前进程、死锁进程, 并杀掉死进程

use master --必须在master数据库中创建 go ? if exists (select * from dbo.sysobjects where id = object_id(N'[db...

强制杀掉多余进程

  • 2017年11月13日 23:02
  • 204KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何杀掉带锁的Oracle进程
举报原因:
原因补充:

(最多只允许输入30个字)