Oracle死鎖問題應該如何解決呢?可能很多人都有這樣的疑問,下面就為您介紹Oracle死鎖的處理方法,供您參考學習之用。
一般情況下,只要將產生Oracle死鎖的語句提交就可以了,但是在實際的執行過程中。用戶可能不知道產生死鎖的語句是哪一句。可以將程序關閉並重新啟動就可以了。
經常在Oracle的使用過程中碰到這個問題,所以也總結了一點解決方法。
1)查找Oracle死鎖的進程:
- sqlplus "/as sysdba" (sys/change_on_install)
- 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掉這個Oracle死鎖的進程:
- 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替換:
- exit
- ps -ef|grep spid
其中spid是這個進程的進程號,kill掉這個Oracle進程。