ORACLE中殺死鎖程式的方法
步驟一:查詢試圖,找出sid
Select Distinct a.session_id From Dba_Ddl_Locks a
Where a.name=upper('t_sqlload_tmp');
如果不知道被鎖的物件,可以用如下語句查詢:
SELECT b.owner,b.object_name,b.object_type,b.object_id
FROM
dba_Objects b
WHERE b.OBJECT_ID IN ( SELECT DISTINCT a.object_id FROM v$locked_object a);
從中發現有個自己在用的物件被鎖了,根據object_id執行如下的sql語句:
SELECT S.SID SESSION_ID,S.SERIAL#
FROM V$LOCK L/*,SYS.DBA_OBJECTS O*/,V$SESSION S
WHERE L.SID = S.SID
AND L.ID1 =874582
然後執行如下的sql語句:
ALTER SYSTEM KILL SESSION 'SID,SERIAL#';
這樣就可以在pl/sql上殺掉oracle程式,如果不能成功釋放,可以用下面的殺手簡:
步驟二:找出spid,在linux上殺掉該作業系統程式號:
SELECT SPID
FROM V$PROCESS
WHERE ADDR = (SELECT PADDR FROM V$SESSION WHERE SID = &ORASID);
或者這個語句
Select a.Status, a.Sid, a.Serial#, a.Saddr, a.Paddr, b.Spid, b.Addr, a.Machine
From V$session a, V$process b
Where b.Addr = a.Paddr And a.Sid In (10,14,36);
步驟三:登陸ORALCE系統執行命令;
kill -9 SPID;
如此方法即可解除死鎖的程式;
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8109090/viewspace-879204/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 殺死Oracle死鎖程式Oracle
- oracle殺死鎖表的程式Oracle
- 殺掉鎖死的程式
- oracle 中查詢被鎖的物件,並殺死死鎖程式的方法Oracle物件
- 【sqlserver】殺掉所有死鎖程式SQLServer
- 從OS中kill ORACLE死鎖程式Oracle
- oracle 死鎖表解決方法Oracle
- 解決Oracle死鎖的快捷方法Oracle
- 檢視oracle死鎖程式並結束死鎖Oracle
- 按照名字殺死程式的四種方法
- oracle死鎖的檢視及kill方法Oracle
- db2查殺死鎖DB2
- 即刻殺死資料庫鎖資料庫
- 關於Oracle死鎖處理方法Oracle
- Oracle中的死鎖Dead Lock(一)Oracle
- Oracle中的死鎖Dead Lock(二)Oracle
- 完全乾掉Oracle死鎖程式Oracle
- oracle 死鎖Oracle
- Oracle資料表死鎖的解決方法Oracle
- Windows中殺死佔用某個埠的程式Windows
- oracle 死鎖解決方法一例Oracle
- Java 中的死鎖Java
- 檢視MySql資料庫鎖,並殺死對應程式MySql資料庫
- 【oracle 殺死繁忙程式 ORA-00054】實驗Oracle
- 殺死殭屍程式
- Oracle 死鎖處理Oracle
- Oracle死鎖處理Oracle
- ORACLE死鎖檢測Oracle
- ORA-00031:session marked for kill處理oracle中殺不掉鎖的程式SessionOracle
- 執行緒中的死鎖執行緒
- 減少SQL Server死鎖的方法SQLServer
- 如何批量殺死當前的MySQL程式MySql
- 自動殺死UNIX僵死的程式(轉)
- 關於oracle死鎖的模擬Oracle
- oracle自治事務引起的死鎖Oracle
- 查詢並解除oracle的死鎖Oracle
- ORACLE 死鎖分析過程Oracle
- oracle-tom死鎖演示Oracle