您的位置:首页 > 数据库 > Oracle

Oracle 进程死锁处理

2017-06-27 11:02 232 查看
1.查死锁,生成死锁语句

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

2.如果利用上面的命令杀死一个进程后,进程状态被置为 “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)

3.杀线程中的会话

(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: