DBAtlas · Atlas de operações de banco de dados

Encerrar (kill) uma sessão / consulta

Oracle

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

Obtenha os valores de sid e serial# em v$session. IMMEDIATE inicia o rollback imediatamente.

PostgreSQL

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

Tente primeiro pg_cancel_backend; se não funcionar, use pg_terminate_backend.

MySQL

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

O valor <id> é a coluna Id da processlist.

SQL Server

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

KILL faz rollback da transação aberta; em transações grandes, o rollback pode demorar bastante.

MongoDB

db.killOp(<opid>)

Pegue o valor de opid no campo opid da saída de db.currentOp().

Redis

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

Use CLIENT LIST para obter o client-id. Um único comando já em execução não pode ser interrompido (exceto um script Lua: SCRIPT KILL); é preciso esperar que termine. Para liberar um cliente aguardando um comando bloqueante como BLPOP/XREAD BLOCK sem derrubar a conexão, use CLIENT UNBLOCK <client-id> [TIMEOUT|ERROR]. CLIENT UNPAUSE apenas retoma clientes pausados com CLIENT PAUSE.

Abrir no DBAtlas →