熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle中殺不掉的鎖(killed)解決辦法

2013-11-13 22:25:45  來源: Oracle 

  下面的語句用來查詢哪些對象被鎖

代碼如下  

  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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.