等待資源 死鎖情況彙總

2021-07-24 21:36:53 字數 849 閱讀 2105

1、死鎖的儲存過程

出現這種情況,可能是編譯的儲存過程過程中發生了死鎖的情況;

解決方法,查出死鎖的物件:

select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b

where a.sid = b.sid

使用kill session 來進行刪除

alter system kill session  '136,17073'; 注:裡面的值分別為『sid,serial#』

2、死鎖的程序:

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;

kill掉這個死鎖的程序:

alter system kill session 『sid,serial#』; (其中sid=l.session_id)

如果還不能解決:

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程序

Oracle 等待資源時檢測到死鎖如何解決

解決方法 1 檢視那些表被鎖住 1 檢視那些表被鎖住 select b.owner,b.object name,a.session id,a.locked mode from v locked object a,dba objects b where b.object id a.object id ...

資料庫偶然出現死鎖 等待鎖超時 的情況處理

前言 朋友諮詢我說執行簡單的update語句失效,症狀如下 mysql update order info set province id 15 city id 1667 where order from 10 and order out sn 1407261241 x error 1205 hy0...

channel 死鎖的情況

主協程一定不能阻塞 要不然會報 dielock error區別 無緩衝通道本身不儲存資訊,它只負責轉手,有人傳給它,它就必須要傳給別人,如果只有進或者只有出的操作,都會造成阻塞。有緩衝的可以儲存指定容量個變數,但是超過這個容量再取值也會阻塞。死鎖情況1 取完了通道儲存的資訊再去取資訊,也會死鎖 fu...