DBAtlas · Atlas de operaciones de bases de datos

Terminar (kill) una sesión / consulta

Oracle

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

Obtenga los valores sid y serial# de v$session. IMMEDIATE inicia el rollback de inmediato.

PostgreSQL

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

Pruebe primero pg_cancel_backend; si no funciona, use pg_terminate_backend.

MySQL

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

El valor <id> es la columna Id del processlist.

SQL Server

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

KILL hace rollback de la transacción abierta; en transacciones grandes el rollback puede tardar mucho.

MongoDB

db.killOp(<opid>)

Tome el valor de opid del campo opid en la salida de db.currentOp().

Redis

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

Use CLIENT LIST para obtener el client-id. Un comando que ya está en ejecución no se puede interrumpir (salvo un script Lua: SCRIPT KILL); hay que esperar a que termine. Para liberar a un cliente que espera en un comando bloqueante como BLPOP/XREAD BLOCK sin cerrar su conexión, use CLIENT UNBLOCK <client-id> [TIMEOUT|ERROR]. CLIENT UNPAUSE solo reanuda los clientes pausados con CLIENT PAUSE.

Abrir en DBAtlas →