alter system kill session

shytodear發表於2015-12-24
1. 當使用者正在處理一個事務時(ACTIVE),此時被kill時會進行rolled back,使用者客戶端會報錯:
ORA-00028: your session has been killed
此時進行commit時會報:
ORA-03114: not connected to ORACLE

2. active session:
ACTIVE session在執行network I/O或rolling back事務時不能被中斷,直到操作完成才會釋放所有資源!
期間該session會被標記為killed或者pseudo狀態。

3. inactive session:
INACTIVE session被kill時,先被標記killed,然後改行記錄送v$session中移除。

4. 對於ACTIVE session,可以使用 immediate選項,強制立即Kill會話,如下:
SQL> alter system kill session 'sid, serial#' immediate;

注:immediate會立即斷開session,而不用等待事務完成。

--批次kill
select 'alter system kill session'''||sid||','||SERIAL#||''' immediate;' from v$session where username in ('USER1','USER2');

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

相關文章