DBAtlas · Atlas d'exploitation des bases de données

Terminer une session (kill session)

OracleSessions et processus

Commande

-- First find the session to kill:
SELECT sid, serial#, username, status, machine, program
FROM   v$session
WHERE  username = 'CUSTOMER_APP' AND status = 'ACTIVE';

-- Kill it (starts rollback immediately):
ALTER SYSTEM KILL SESSION '145,12345' IMMEDIATE;

-- If it hangs, the OS process can be terminated:
-- ALTER SYSTEM DISCONNECT SESSION '145,12345' IMMEDIATE;

Ce que fait la commande

Termine la session ayant le SID,SERIAL# indiqué ; sa transaction ouverte est annulée (rollback).

Quand l'utiliser

Pour arrêter une session qui détient des verrous, exécute une requête incontrôlée ou fait fuir des connexions.

Attention

S'il y a une transaction ouverte, le rollback peut être long (il se termine vite si peu de travail a été fait). Vérifiez d'abord par une requête pour ne pas terminer le mauvais SID. Le rollback d'un DML volumineux génère une charge d'E/S.

Ouvrir dans DBAtlas →

Voir aussi