程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle死鎖的處理

Oracle死鎖的處理

編輯:Oracle數據庫基礎

Oracle死鎖問題應該如何解決呢?可能很多人都有這樣的疑問,下面就為您介紹Oracle死鎖的處理方法,供您參考學習之用。

一般情況下,只要將產生Oracle死鎖的語句提交就可以了,但是在實際的執行過程中。用戶可能不知道產生死鎖的語句是哪一句。可以將程序關閉並重新啟動就可以了。
經常在Oracle的使用過程中碰到這個問題,所以也總結了一點解決方法。

1)查找Oracle死鎖的進程:

  1. sqlplus "/as sysdba" (sys/change_on_install)  
  2. SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,  
  3. l.Oracle_USERNAME,l.OS_USER_NAME,l.PROCESS   
  4. FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID; 

2)kill掉這個Oracle死鎖的進程:

  1. alter system kill session ‘sid,serial#’; (其中sid=l.session_id) 

3)如果還不能解決:

  1. select pro.spid from v$session ses,  
  2. v$process pro where ses.sid=XX and   
  3. ses.paddr=pro.addr; 

其中sid用死鎖的sid替換:

  1. exit  
  2. ps -ef|grep spid 

其中spid是這個進程的進程號,kill掉這個Oracle進程。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved