终止会话(kill session)
Oracle会话与进程命令
-- First find the session to kill:
SELECT sid, serial#, username, status, machine, program
FROM v$session
WHERE username = 'CUSTOMER_APP' AND status = 'ACTIVE';
-- Kill it (starts rollback immediately):
ALTER SYSTEM KILL SESSION '145,12345' IMMEDIATE;
-- If it hangs, the OS process can be terminated:
-- ALTER SYSTEM DISCONNECT SESSION '145,12345' IMMEDIATE;作用
终止指定 SID,SERIAL# 的会话;其未提交的事务会被回滚。
适用场景
用于停止持有锁、运行失控查询或泄漏连接的会话。
注意
如果存在未提交的事务,回滚可能耗时很长(如果做的工作不多则很快完成)。先用查询确认,以免终止错误的 SID。大型 DML 的回滚会产生 I/O 负载。