【ORACLE 】 ORA-00031 標記要刪去的會話(解決)


在使用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

kill9 $SPID

2.1 Oracle 運行在 Windows 機器上

在CMD命令窗口下,輸入:

## $SPID 為 第1步的sql查出的SPID

orakill 數據庫實例名 $SPID

注:orakill 是Oracle自帶的一個服務

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM