세션 / 쿼리 종료(kill)
Oracle
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
-- To cancel only the running statement (18c+):
-- ALTER SYSTEM CANCEL SQL 'sid,serial#';sid와 serial# 값은 v$session에서 가져온다. IMMEDIATE는 롤백을 즉시 시작한다.
PostgreSQL
-- Cancel only the running query (the session stays):
SELECT pg_cancel_backend(pid);
-- Close the session entirely:
SELECT pg_terminate_backend(pid);먼저 pg_cancel_backend를 시도하고, 효과가 없으면 pg_terminate_backend를 사용한다.
MySQL
-- Kill only the query:
KILL QUERY <id>;
-- Close the connection entirely:
KILL CONNECTION <id>;<id> 값은 processlist의 Id 컬럼이다.
SQL Server
KILL <session_id>;
-- To see rollback progress:
-- KILL <session_id> WITH STATUSONLY;KILL은 열린 트랜잭션을 롤백한다. 대형 트랜잭션은 롤백에 오랜 시간이 걸릴 수 있다.
MongoDB
db.killOp(<opid>)opid 값은 db.currentOp() 출력의 opid 필드에서 가져온다.
Redis
CLIENT KILL ID <client-id>
# or by address: CLIENT KILL ADDR 10.0.0.5:6379client-id는 CLIENT LIST로 확인한다. 이미 실행 중인 단일 명령은 중단할 수 없으며(Lua 스크립트는 예외: SCRIPT KILL) 완료될 때까지 기다려야 한다. BLPOP/XREAD BLOCK 같은 블로킹 명령에서 대기 중인 클라이언트를 연결을 끊지 않고 해제하려면 CLIENT UNBLOCK <client-id> [TIMEOUT|ERROR]를 사용한다. CLIENT UNPAUSE는 CLIENT PAUSE로 일시 중지된 클라이언트만 재개한다.