Oracle
 sql >> Database >  >> RDS >> Oracle

Come eliminare tutte le sessioni Oracle attive e inattive per l'utente

La KILL SESSION il comando in realtà non uccide la sessione. Chiede semplicemente alla sessione di uccidersi. In alcune situazioni, come l'attesa di una risposta da un database remoto o il rollback delle transazioni, la sessione non si interromperà immediatamente e attenderà il completamento dell'operazione corrente. In questi casi, la sessione avrà lo stato "contrassegnata per l'eliminazione ". Verrà quindi ucciso il prima possibile.

Controlla lo stato per confermare:

SELECT sid, serial#, status, username FROM v$session;

Puoi anche utilizzare IMMEDIATO clausola:

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;

Il IMMEDIATE La clausola non influisce sul lavoro svolto dal comando, ma restituisce immediatamente il controllo alla sessione corrente, anziché attendere la conferma dell'eliminazione. Dai un'occhiata a Killing Oracle Sessions.

Aggiorna Se vuoi terminare tutte le sessioni, puoi semplicemente preparare un piccolo script.

SELECT 'ALTER SYSTEM KILL SESSION '''||sid||','||serial#||''' IMMEDIATE;' FROM v$session;

Spool quanto sopra in un .sql file ed eseguilo, oppure copia incolla l'output ed eseguilo.