giovedì 23 luglio 2009

HOWTO : killare sessioni Oracle

Questa è la select che ci consente di vedere le sessioni attiv:

SELECT s.osuser,
s.username,
s.sid,
s.process,
s.serial#,
s.program
FROM v$session s;

per killare una sessione abbiamo bisogno della coppia SID e SERIAL#.

Una volta ottenuti questi valori basterà metterli nel seguente statement:

ALTER SYSTEM KILL SESSION 'sid,serial#'

In alcuni casi Oracle.exe non è abilitato a killare le sessioni immediatamente, perciò queste sessioni vengono marcate con "marked for kill" (MARKED) e saranno killate il prima possibile

Il comando ALTER SYSTEM KILL SESSION è l'unico modo per killare sessioni senza avere alcun tipo di problema. Se i "MARKED" persistono in alcuni casi si deve killare il processo a livello di sistema operativo, però questo non è raccomandato perchè può causare danni all'istanza Oracle

E' possibile forzare il kill aggiungendo la keyword IMMEDIATE:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE