下面的語句用來查詢哪些對象被鎖
代碼如下
select object_namemachinessidsserial#
from v$locked_object ldba_objects o v$session s
where lobject_id = oobject_id and lsession_id=ssid;
下面的語句用來殺死一個進程
代碼如下
alter system kill session
;
(其中分別是上面查詢出的sidserial#)
【注】以上兩步可以通過Oracle的管理控制台來執行
如果利用上面的命令殺死一個進程後進程狀態被置為"killed"但是鎖定的資源很長時間沒有被釋放那麼可以在os一級再殺死相應的進程(線程)首先執行下面的語句獲得進程(線程)號
代碼如下
select spid osuser sprogram
from v$session sv$process p
where spaddr=paddr and ssid= (是上面的sid)
在OS上殺死這個進程(線程)
)在unix上用root身份執行命令:
#kill (即第步查詢出的spid)
)在windows(unix也適用)用orakill殺死線程orakill是oracle提供的一個可執行命令語法為
orakill sid thread
其中
sid表示要殺死的進程屬於的實例名
thread是要殺掉的線程號即第步查詢出的spid
例c:>orakill orcl
From:http://tw.wingwit.com/Article/program/Oracle/201311/19092.html