oralce kill 殺不掉進程

select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action,
‘ALTER SYSTEM KILL SESSION ”’ || s.sid || ‘, ’ || s.serial# || ”’;’ Command
from vsqlareaa,v session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;

alter system kill session ‘sid,serial#’;

報錯圖片

ORA-00031: session marked for kill 處理Oracle中殺不掉的鎖

2.報如上錯誤 :select a.spid,b.sid,b.serial#,b.username from vprocessa,v session b where a.addr=b.paddr and b.status=’KILLED’ 查詢spid 線程id;
3.如果利用上面的命令殺死一個進程後,進程狀態被置爲”killed”,但是鎖定的資源很長時間沒有被釋放,那麼可以在os一級再殺死相應的進程(線程),首先執行下面的語句獲得進程(線程)號:
select spid, osuser, s.program from vsessions,v process p where s.paddr=p.addr and s.sid=12 (12就是上面的sid)
4. 例:c:>orakill orcl 327
說明:這裏要注意的是kill OS進程是在服務端操作,而不是你程序所在客戶機。 orcl 是實例名稱 ,327 爲spid 線程號

線程殺成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章