殺掉後臺執行的過程

weifenghq發表於2009-10-26

在sql/pl執行的過程,取消過程無法取消,而且sql/pl視窗也關閉了

直接在v$session 中active的使用者已經無法找到執行此過程的使用者

v$sql雖然能找到執行過程的記錄,但是和v$session關聯沒有找到記錄

從結果表檢視記錄說明過程還在跑

既然過程在跑那肯定有事務

從v$transaction找到了活動的事物,然後找到session的address

select sid,serial# from v$session v where v.SADDR='C0000004BCDFB660'

然後找到

select * from v$process where addr='C0000004BF904050'

alter system kill session '1403,14192';

ps -ef|grep 21980

kill -9 21980

這樣程式就完全清除了

-------------------------------------------------------------------------

透過棉花的指點:

v$access和v$open_cursor或者x$kgllk,x$kglpn

begin
test_procedure();
end;

select * from v$access where object like upper('%test_procedure%')

select * from v$open_cursor where user_name='ACCT' and sql_text like '%test%'

可以很快找到sid,這個方法確實簡單了很多。


[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/633084/viewspace-1028163/,如需轉載,請註明出處,否則將追究法律責任。

相關文章