回覆列表
  • 1 # zdoiz30032

    一些ORACLE中的程序被殺掉後,狀態被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟資料庫。現在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。

    1.下面的語句用來查詢哪些物件被鎖:selectobject_name,machine,s.sid,s.serial#fromv$locked_objectl,dba_objectso,v$sessionswherel.object_id = o.object_idandl.session_id=s.sid;

    2.下面的語句用來殺死一個程序:altersystemkillsession"24,111";(其中24,111分別是上面查詢出的sid,serial#)【注】以上兩步,可以透過Oracle的管理控制檯來執行。

    3.如果利用上面的命令殺死一個程序後,程序狀態被置為"killed",但是鎖定的資源很長時間沒有被釋放,那麼可以在os一級再殺死相應的程序(執行緒),首先執行下面的語句獲得程序(執行緒)號:selectspid,osuser,s.programfromv$sessions,v$processpwheres.paddr=p.addrands.sid=24(24是上面的sid)4.在OS上殺死這個程序(執行緒):1)在unix上,用root身份執行命令:#kill-912345(即第3步查詢出的spid)2)在windows(unix也適用)用orakill殺死執行緒,orakill是oracle提供的一個可執行命令,語法為:orakillsidthread其中:sid:表示要殺死的程序屬於的例項名thread:是要殺掉的執行緒號,即第3步查詢出的spid。例:c:>orakillorcl12345

  • 中秋節和大豐收的關聯?
  • dota2路人局屠夫很常見,比賽為什麼屠夫很少上場?