终止(kill)会话 / 查询
Oracle
ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;
-- To cancel only the running statement (18c+):
-- ALTER SYSTEM CANCEL SQL 'sid,serial#';从 v$session 获取 sid 和 serial# 值。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>)从 db.currentOp() 输出的 opid 字段获取 opid 值。
Redis
CLIENT KILL ID <client-id>
# or by address: CLIENT KILL ADDR 10.0.0.5:6379使用 CLIENT LIST 获取 client-id。已在运行的单个命令无法中断(Lua 脚本除外:SCRIPT KILL),只能等待其完成。若要在不断开连接的情况下释放正在等待 BLPOP/XREAD BLOCK 等阻塞命令的客户端,使用 CLIENT UNBLOCK <client-id> [TIMEOUT|ERROR]。CLIENT UNPAUSE 仅恢复被 CLIENT PAUSE 暂停的客户端。