oracle的用户session杀不掉,ORA-00031:session marked for kill处理oracle中杀不掉锁的进程...

一般Oracle 中的进程会通过PL/SQL 执行以下语句

select c.owner, c.object_name, c.object_type, b.sid, b.serial#,

b.status, b.osuser, b.machine from

v$locked_object a, v$session b, dba_objects c

where b.sid = a.session_id

and a.object_id = c.object_id;

上面的语句得出 SID 和 SERIAL#

alter system kill session '137,1681'

immediate;

其中 "137" 为 SID

"1681" 为SERIAL#

来进行"Killed"

,执行完之后,状态为"Killed",但是锁定的资源会很长一段时间不释放,一开始没有办法,只好重启数据库。

后来,经过研究,搜索资料,现提供下面的解决办法,进行杀掉锁的进程。

解决办法如下:

1、通过上面的命令来杀死进程,进程的状态会被置为"killed",但是锁定的资源没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

select spid,osuser,s.program

from v$session s,v$process p

where s.paddr = p.addr and s.sid =

'137'

注:这里的 '137' 就是第一段语句查出来的SID,

执行上述语句,得出来的SPID 为

728

2、在OS 上通关cmd命令来杀死这个进程(线程)

1)第一种,在UNIX OS 上,用ROOT 身份执行下面的命令:

#kill -9 728 (728 1中的语句查询出来的SPID)

2)第二种,在WINDOWS,用orakill杀死线程,

语法为:orakill sid thread

注:SID,这里的SID

为你杀死该进程的数据库的实例名

THREAD,指的是你要杀掉该进程的线程号,为1中查询出来的SPID

例子如下:

C:\Documents and Settings\Administrator>orakill

zghx 728

Kill of thread id 728 in instance zghx successfully

signalled.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值