본문 바로가기
728x90

Lock3

[Database] Lock, Block, DeadLock Lock Lock은 프로세스가 데이터 조각에 액세스할 때 획득된다. 다른 프로세스가 이 데이터 조각을 동시에 필요로 할 가능성이 있는데, 데이터 조각을 잠그면 이러한 상황 발생시 해당 데이터에 대해 조치를 취할 수 있다. 예를 들어 데이터를 읽는 경우 일반적으로 최신 데이터를 읽도록 한다. 데이터를 업데이트하는 경우 다른 프로세스가 동시에 업데이트하지 않도록 해야 한다. Block Block (혹은 blocking lock)은 두 프로세스가 동일한 데이터 조각에 동시에 액세스해야 하는 상황에서, 한 프로세스는 데이터를 잠그고 다른 프로세스는 다른 프로세스가 완료되어 잠금을 해제할 때까지 기다려야 할 때 발생한다. 첫 번째 프로세스가 완료되는 즉시 차단된 프로세스가 작업을 재개한다. 차단 체인(blocki.. 2022. 9. 15.
[Oracle] Lock 확인 락이 걸린 세션 확인 SELECT SID,SERIAL#,USERNAME,MACHINE,PROGRAM,BLOCKING_INSTANCE,BLOCKING_SESSION,EVENT,SECONDS_IN_WAIT FROM V$SESSION WHERE BLOCKING_SESSION IS NOT NULL OR SID IN (SELECT BLOCKING_SESSION FROM V$SESSION WHERE BLOCKING_SESSION IS NOT NULL); ※ BLOCKING_SESSION : LOCK의 원인이 되는 세션 LOCK TYPE, LMODE 포함 락이 걸린 세션 확인 SELECT S.SID, S.SERIAL#, S.USERNAME, L.TYPE, L.LMODE, S.BLOCKING_SESSION, S.EVE.. 2022. 7. 6.
[Oracle] Oracle Lock Test TX Lock Test (DML) 여러 세션이 동일 로우를 변경하는 경우(mode=6) 여러 세션이 Unique Key 충돌을 일으키는 경우(mode=4) 여러 세션이 비트맵 인덱스(Bitmap Index) 충돌을 일으키는 경우(mode=4) COMMANDS -- 현재 세션의 SESSION ID 확인 SELECT SID FROM V$SESSION WHERE USERNAME=USER; -- LOCK 걸린 SESSION 확인 SELECT D.OBJECT_NAME, L.SESSION_ID, S.SERIAL#, S.MACHINE, S.PROGRAM, S.LOGON_TIME FROM DBA_OBJECTS D, V$LOCKED_OBJECT L, V$SESSION S WHERE L.SESSION_ID = S.SID .. 2022. 6. 10.
728x90