SQL

Oracle에서 LOCK 확인 및 처리

자바와 동고동락 2023. 4. 7. 13:45

1.LOCK된거 찾기 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT  DISTINCT
        T1.SESSION_ID
       ,T2.SERIAL#          AS SERIAL_NO
       ,T1.OS_USER_NAME
       ,T1.ORACLE_USERNAME
       ,T2.STATUS
       ,T3.OBJECT_NAME
       ,CASE LOCKED_MODE 
             WHEN 2 THEN 'ROW SHARE'
             WHEN 3 THEN 'ROW EXCLUSIVE'
             WHEN 4 THEN 'SHARE'
             WHEN 5 THEN 'SHARE ROW EXCLUSIVE'
             WHEN 6 THEN 'EXCLUSIVE'
             ELSE 'UNKNOWN'
        END AS LOCK_MODE
  FROM  V$LOCKED_OBJECT T1
  JOIN  V$SESSION       T2 ON T1.SESSION_ID = T2.SID
  JOIN  DBA_OBJECTS     T3 ON T1.OBJECT_ID = T3.OBJECT_ID
;
cs

2.LOCK풀기 - 조회결과를 이용

1
2
ALTER SYSTEM KILL SESSION 'SESSION_ID값,SERIAL_NO값';
ALTER SYSTEM KILL SESSION '121,21';
cs