Oracle/운영
v$locked_object - 락걸린 세션 확인
취미툰
2021. 1. 7. 17:12
반응형
락걸린 세션에 대해서 확인할 수 있는 뷰입니다.
쿼리 검색시 아래와 같이 나타납니다.
SQL> select * from v$locked_object;
XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE
----------- ----------- ----------- ----------- ----------- ------------------------------ ------------------------------ ------------------------ -----------
1 16 6843 21527 29 TEST oracle 11470 3
1 16 6843 21526 29 TEST oracle 11470 3
0 0 0 21526 36 TEST oracle 10433 3
3 rows selected.
테스트를 통해 알아보겠습니다.
XIDUSN XIDSLOT XIDSQN에 숫자가 들어가 있는 세션이 현재 LOCK을 잡고 있는 세션이고, 번호를 부여받지 못한 세션이 후에 들어와서 기다리고 있는 세션입니다. 확인 후 세션 KILL 명령어를 통해 삭제할 수 있습니다.
ALTER SYSTEM KILL SESSION 'sid,serial#'; |
sid와 serial#은 v$session을 통해서 알 수 있습니다.
//(1번세션) 락걸기 전
SQL> select * from v$locked_object;
XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE
----------- ----------- ----------- ----------- ----------- ------------------------------ ------------------------------ ------------------------ -----------
0 rows selected.
//(2번세션) row update
SQL> update a set a='b';
1 row updated.
//(3번세션) 같은 row update
SQL> update a set a='c';
(계속 대기중)
//(1번세션) 확인
SQL> select * from v$locked_object;
SQL> select * from v$locked_object;
XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCESS LOCKED_MODE
----------- ----------- ----------- ----------- ----------- ------------------------------ ------------------------------ ------------------------ -----------
0 0 0 24010 29 TEST oracle 11470 3
3 27 6992 24010 36 TEST oracle 10433 3
2 rows selected.
끝.
반응형