DBAtlas · 데이터베이스 운영 아틀라스

세션 종료(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 부하를 일으킨다.

DBAtlas에서 열기 →

관련 항목