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

Terminer (kill) une session / requête

Oracle

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
-- To cancel only the running statement (18c+):
-- ALTER SYSTEM CANCEL SQL 'sid,serial#';

Récupérez les valeurs sid et serial# dans v$session. IMMEDIATE lance le rollback immédiatement.

PostgreSQL

-- Cancel only the running query (the session stays):
SELECT pg_cancel_backend(pid);
-- Close the session entirely:
SELECT pg_terminate_backend(pid);

Essayez d'abord pg_cancel_backend ; si cela ne fonctionne pas, utilisez pg_terminate_backend.

MySQL

-- Kill only the query:
KILL QUERY <id>;
-- Close the connection entirely:
KILL CONNECTION <id>;

La valeur <id> correspond à la colonne Id du processlist.

SQL Server

KILL <session_id>;
-- To see rollback progress:
-- KILL <session_id> WITH STATUSONLY;

KILL annule la transaction ouverte ; pour les transactions volumineuses, le rollback peut être long.

MongoDB

db.killOp(<opid>)

Prenez la valeur opid dans le champ opid de la sortie de db.currentOp().

Redis

CLIENT KILL ID <client-id>
# or by address: CLIENT KILL ADDR 10.0.0.5:6379

Utilisez CLIENT LIST pour obtenir le client-id. Une commande unique déjà en cours ne peut pas être interrompue (sauf un script Lua : SCRIPT KILL) ; il faut attendre sa fin. Pour libérer un client en attente sur une commande bloquante telle que BLPOP/XREAD BLOCK sans couper sa connexion, utilisez CLIENT UNBLOCK <client-id> [TIMEOUT|ERROR]. CLIENT UNPAUSE reprend uniquement les clients mis en pause avec CLIENT PAUSE.

Ouvrir dans DBAtlas →