(1)查找死锁的进程:
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
(2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
(3)如果还不能解决,杀掉进程
select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;
其中sid用死锁的sid替换。
-ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
(2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
(3)如果还不能解决,杀掉进程
select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;
其中sid用死锁的sid替换。
-ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。
本文介绍了解决Oracle数据库中出现的死锁问题的方法。包括通过SQL查询找到死锁的进程,使用ALTER SYSTEM KILL SESSION命令终止该进程,以及当以上方法无效时如何通过操作系统层面强制结束Oracle进程。
4万+

被折叠的 条评论
为什么被折叠?



