Il comando KILL SESSION
in realtà non uccide la sessione. Si limita a chiedere alla sessione di uccidersi. In alcune situazioni, come attendere una risposta da un database remoto o eseguire il rollback delle transazioni, la sessione non si ucciderà immediatamente e attenderà il completamento dell'operazione corrente. In questi casi, la sessione avrà lo stato "contrassegnato per kill". Sarà quindi ucciso il prima possibile.
di controllare lo stato di confermare:
SELECT sid, serial#, status FROM v$session;
Si potrebbe anche usare IMMEDIATO clausola:
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
La clausola IMMEDIATE
non influenza il lavoro svolto dal comando, ma restituisce il controllo tornare alla sessione corrente immediatamente, piuttosto che attendere la conferma dell'uccisione. Dai un'occhiata a Killing Oracle Sessions.
Aggiornamento Se si desidera interrompere tutte le sessioni, è sufficiente preparare un piccolo script.
SELECT 'ALTER SYSTEM KILL SESSION '||sid||','||serial#||';' FROM v$session;
Spool quanto sopra in un file .sql
ed eseguirlo.
fonte
2015-07-03 08:30:05
Qual è lo stato di tali sessioni? Il fatto che tu abbia ucciso una sessione non significa che sparirà immediatamente. Se la sessione ha una certa transazione aperta, quindi prima i rollback (richiede molto tempo) e quindi si chiuderà. Quindi la mia raccomandazione è di controllare la colonna STATUS nella sessione V $. – ibre5041
ho controllato lo stato della colonna e il suo mostrare poche sessioni attive. Quindi non è stato ucciso .. – Andrew