一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長時(shí)間不釋放,有時(shí)實(shí)在沒辦法,只好重啟數(shù)據(jù)庫。現(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級(jí)再殺。
1.下面的語句用來查詢哪些對(duì)象被鎖:
2.下面的語句用來殺死一個(gè)進(jìn)程:
(其中24,111分別是上面查詢出的sid,serial#)
【注】以上兩步,可以通過Oracle的管理控制臺(tái)來執(zhí)行。
3.如果利用上面的命令殺死一個(gè)進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長時(shí)間沒有被釋放,那么可以在os一級(jí)再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語句獲得進(jìn)程(線程)號(hào):
(24是上面的sid)
4.在OS上殺死這個(gè)進(jìn)程(線程):
1)在unix上,用root身份執(zhí)行命令:
#kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個(gè)可執(zhí)行命令,語法為:
orakill sid thread
其中:
sid:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名
thread:是要?dú)⒌舻木€程號(hào),即第3步查詢出的spid。
例:c:>orakill orcl 12345
總結(jié):oracle會(huì)話被鎖是經(jīng)常的。但有時(shí)alter system kill session 'sid,serial#';并不能徹底的殺死會(huì)話。只能通過殺死OS上對(duì)應(yīng)的進(jìn)程才行。
新聞熱點(diǎn)
疑難解答
圖片精選