ORACLE 死锁

1、查询死锁会话

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;

或者

select saddr,sid,serial#,paddr,username,status from v$session where username =upper('etl') 
or username =upper('sys');

2、kill掉相应的会话

alter system kill session '456,1589'; (其中456,1589分别是上面查询出的sid,serial#) 

3、附加
第二部执行完之后 再去执行第一步查看是否还有死锁会话(进程状态被置为”killed”),因为锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程)

--获得进程(线程)号,456是上面的sid
select spid, osuser, s.program from v$session s,v$process p where s.paddr=p.addr and s.sid=456   

在unix上,用root身份执行命令:

kill -9 4268(即第3步查询出的spid) 

在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:

orakill Servicename spid

其中:
servicename :数据库的servicename
这里写图片描述
spid:是要杀掉的线程号,即上面查询出的spid。

eg:orakill orcl 4268

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值