LOCK 유형

   데이타의 concurrency 보장하기 위해 오라클은 lock transaction 사용한다.

   Lock 같은 자원을 access하는 사용자들 사이에 상호간에 해를 끼치는 것을 예방하기 위해서 사용되는 메카니즘이다.

   Lock 종류

      - Exclusive : lock 걸린 자원의 공유를 허용하지 않는다.

      - Share : 자원에 대해 수행되는 명령의 유형에 따라 lock 자원의 공유되는 것을 허용한다.

 

   오라클에서의 Lock 일반적인 범주

      - Data or DML (row locks TX and table locks TM) : 동시에 다중의 사용자 의해 access되는 테이블 데이타의 보호를 위해 사용된다.

      - Dictionary or DDL(TD) : 트랜잭션에서 access되는 테이블과 같은 Object 정의를 보호하기 위해서 사용한다.

      - Internal and Latches (RT, MR) : SGA 영역에서의 내부적인 데이타베이스와 메모리 구조를 보호하기 위해 사용한다.

 

   1. TABLE LOCKS

      테이블의 특정한 row 수정하는 문장은 항상 그러한 row 대해 exclusive row lock 획득하고 테이블 lock 전유한다.

      (1) Row Share Table Locks (RS)

          - row lock 시키고 lock 테이블을 UPDATE 목적이다.

          - 모든 row SELECT 하려는 다른 트랜잭션을 허용한다.

          - 동일 테이블에서 lock 되지 않은 row INSERT, UPDATE, DELETE 하는 다른 트랜잭션을 허용한다.

          - 테이블에 대한 ROW SHARE, ROW EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE lock 획득하려는 다른 트랜잭션을 허용한다.

          - EXCLUSIVE 모드에서의 테이블 locking으로부터 다른 트랜잭션을 예방한다.


      (2) Row Exclusive Table Locks (RX)

          - row lock 시키고 테이블에서 row 변화시킨다.

          - 모든 row SELECT 하려는 다른 트랜잭션을 허용한다.

          - 동일 테이블에서 lock 되지 않은 row INSERT, UPDATE, DELETE 하는 다른 트랜잭션을 허용한다.

          - 테이블에 대한 ROW SHARE, ROW EXCLUSIVE lock 획득하려는 다른 트랜잭션을 허용한다.

          - SHARE, EXCLUSIVE, SHARE ROW EXCLUSIVE 모드에서의 테이블 locking로부터 다른 트랜잭션을 예방한다.


      (3) Share Table Locks (S)

          - 다른 트랜잭션을 제공하지 않는 테이블에서 row INSERT, UPDATE, DELETE 하는 것이 SHARE lock 홀딩한다.

          - 동일 테이블에서 지정된 row QUERY 또는 LOCK 하려는 다른 트랜잭션을 허용한다.

          - 테이블에 대해 나아가 SHARE lock 얻으려는 다른 트랜잭션을 허용한다.

          - EXCLUSIVE 또는 SHARE ROW EXCLUSIVE 모드로 테이블을 locking 하는 것으로부터 다른 트랜잭션을 보호한다.


      (4) Share Row Exclusive Table Locks (SRX)

          - 테이블에 row INSERT, UPDATE, DELETE 한다.

          - 동일 테이블에서 지정된 row QUERY 또는 LOCK 하려는 다른 트랜잭션을 허용한다.

          - SHARE, EXCLUSIVE 또는 SHARE ROW EXCLUSIVE 모드로 테이블을 locking 하는 것으로 부터 다른 트랜잭션을 보호한다.


      (5) Exclusive Table Locks (S)

          - 테이블에 row INSERT, UPDATE, DELETE 한다.

          - 동일 테이블에서 지정된 row QUERY하는 것에 대해서만 다른 트랜잭션을 허용한다.

          - 어떠한 lock 문장을 내리는 것으로부터 다른 트랜잭션을 보호한다.

 

   2. DICTIONARY LOCKS

      Dictionary lock Object 대한 DDL 명령이 수행되는 동안 Object 정의를 보호한다.

 

   3. INTERNAL LOCKS LATCHES

      Latches Internal lock 메모리 구조를 보호하기 위한 메카니즘이다.

      - Latches SGA 영역에 있는 shared data structure 보호하기 위한 low-level 연속 메카니즘이다.

      - Internal lock data dictionary entry 보호하고 database file,  tablespace, rollback segment lock한다.

      Latches Internal locks 데이타베이스 사용자에 의해 컨트롤 없다.

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

+ Recent posts