【原】杀掉oracle僵死进程

作者:david_zhang@sh 【转载时请以超链接形式标明文章】

链接:http://www.cnblogs.com/david-zhang-index/archive/2012/03/01/2375466.html

1.用oracle命令杀掉

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

•获得SID,SERIAL#

select s.username,s.sid,s.serial# from v$session s where username='BOND'

可以根据sid和serial用oracle命令杀掉相应进程

example.

USERNAME                              SID    SERIAL#
------------------------------ ---------- ----------
ORACLE                                  400      45085
ORACLE                                  767      29118

2.操作系统命令杀掉会话

由于Oracle系统忙, PMON没有来的及释放被Kill掉的会话资源,就需要通过操作系统来释放相应的资源

在UNIX或LINUX上系统采用的是线程的,可用KILL命令直接将对应的线程杀掉。基本命令如下:Kill -9 SPID

•获得线程ID

select s.sid,s.serial#,s.MACHINE,s.PROGRAM,p.SPID from v$session s,v$process p where s.PADDR = p.ADDR  and s.username='ORACLE';

可以根据spid用系统命令杀掉相应进程

example.

       SID    SERIAL#   MACHINE     PROGRAM        SPID
---------- ----------   ----------   ----------    ------------------------
       767      29118    UCMSDB03                   17287
       400      45085    UCMSDB03                   19380
       101      37916    UCMSDB03                   20066

由于部分线程,已经使用Oracle的alter  system 命令杀掉了,但实际上资源没有释放。通过上面的语句得不到对应的线程ID,但是可以用下面的方法得到。

select p.spid from v$process  p where not exists (select spid from v$session where paddr=p.addr)

再根据spid用系统命令杀掉相应进程

example.

SPID
------------------------

31662
31664

转载于:https://www.cnblogs.com/david-zhang-index/archive/2012/03/01/2375466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值