세션1에서 테이블 생성 및 insert 진행후 commit 미진행 상태에서 다른세션에서 해당 테이블 변경 시도
-- 세션1
CREATE TABLE lock_test (id NUMBER);
INSERT INTO lock_test VALUES (1);
-- 세션2
ALTER TABLE lock_test ADD name VARCHAR2(100);
자 이제 어떤 세션이 락을 걸었고, 어떤 세션이 락이 걸렸는지 알아보자
-- 락 건세션
SELECT s.sid, s.serial#, s.username, s.status, l.type, l.block
FROM v$lock l
JOIN v$session s ON l.sid = s.sid
WHERE l.block = 1;
-- 락걸린 세션
SELECT s.sid, s.serial#, s.username, s.status, l.type, l.block
FROM v$lock l
JOIN v$session s ON l.sid = s.sid
WHERE l.request > 0;
락걸린 세션을 강제종료 시켜보자
ALTER SYSTEM KILL SESSION '15,51240' IMMEDIATE;
'Study > Oracle Study' 카테고리의 다른 글
[Oracle 19c] Partition Table & 로컬인덱스 (1) | 2025.07.07 |
---|---|
[Oracle 19c] Data Pump 테스트 (0) | 2025.07.06 |
[Oracle 19c] RMAN 백업 및 복구 (1) | 2025.07.06 |
[Oracle 19c] AWR / ASH 리포트 (0) | 2025.07.06 |
[Oracle 19c] 초급 튜닝 Nested loops vs hash join (1) | 2025.07.06 |