在使用Oracle的過程中,會有使用了鎖(for update)但又忘記釋放鎖的情況。這是就需要用到KILL語句了。(如果不知道KILL語句怎么用,可參考:
http://www.cnblogs.com/memory4young/p/oracle-kill-locked-session.html)
當KILL語句執行后,報這樣的信息:ORA-00031 標記要刪去的會話 。
該怎么辦呢 ?
1、查找進程ID
執行如下語句,查出被鎖的進程的ID:
-- 執行以下SQL,需要DBA的權限 ---- 查詢條件 KILLED ,必須大寫 SELECT P.SPID, S.SID, S.SERIAL#, S.USERNAME, S.PROGRAM FROM V$PROCESS P, V$SESSION S WHERE P.ADDR=S.PADDR AND S.STATUS='KILLED';
2、KILL 進程
2.1 Oracle 運行在 Unix 機器上
在終端執行以下腳本:
## $SPID 為 第1步的sql查出的SPID kill –9 $SPID
2.1 Oracle 運行在 Windows 機器上
在CMD命令窗口下,輸入:
## $SPID 為 第1步的sql查出的SPID
orakill 數據庫實例名 $SPID
注:orakill 是Oracle自帶的一個服務