Oracle 死鎖處理

電腦日益不給力,網絡也隨時可能斷掉,用PL/SQL執行操做多多少少出現正在處理SQL語句結果程序死掉了。致使這張表被鎖掉,沒法執行SQL操做。sql

如何解除死鎖?數據庫

1)執行下面SQL,先查看哪些表被鎖住了:網絡

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;


2)查處引發死鎖的會話尋找SIDsession

select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;


3)查出SID和SERIAL#:code

查V$SESSION視圖:
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='剛纔查到的SID';
這一步將獲得PADDR


4)查V$PROCESS視圖:進程

SELECT SPID FROM V$PROCESS WHERE ADDR='剛纔查到的PADDR';
這一步獲得SPID


5)殺死進程io

在數據庫中,殺掉ORACLE進程:
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
相關文章
相關標籤/搜索