Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[2015 05-29] Oracle Lock

808 views

Published on

[2015 05-29] Oracle Lock

Published in: Software
  • Login to see the comments

[2015 05-29] Oracle Lock

  1. 1. WareValley http://www.WareValley.com Database Audit and Protection [ DB 접근통제 ] Database Encryption [ DB 암호화 ] Database Vulnerability Assessment [ DB 취약점 분석 ] Database SQL Query Approval [ DB 작업결재 ] Database Performance Monitoring and Management [ DB 성능관리 및 개발 ] WareValley Oracle Lock 오렌지팀 윤석준 선임연구원
  2. 2. Database security and management, WareValley. http://www.WareValley.com Oracle Lock의 종류  Latch : SGA에서 사용되는 자료구조를 보호할 목적의 가벼운 Lock (대기자 개념이 없어서 Wait Event로… 등의 자세한 설명은 이미 앞에서…)  Buffer Lock : Buffer Block에 대한 액세스를 직렬화  Library Cache Lock : Library Cache Object에 대한 Handle 보호  Library Cache Pin : Library Cache Objecy의 실제 내용이 담긴 Heap을 보호  DML Lock - DML Table Lock : Enqueue Lock 으로 구현 - DML Row Lock : Row 단위 Lock 과 Transaction Lock 을 조합하여 구현 (TX Lock은 Enqueue Lock 으로 구현되어 있음)
  3. 3. Database security and management, WareValley. http://www.WareValley.com Enqueue Lock  Shared Resource에 대한 액세스를 관리하는 Lock Mechanism  Table, Transaction, Tablespace, Sequence, Temp Segment 등을 보호  획득 순서가 보장되는 Queue 구조  Enqueue resource 에 할당 (v$resource 에서 확인 가능) - TYPE : TX, TM, TS 등… ( 2개의 문자로 구성 ) - ID1, ID2 : Lock Type 별로 다른 정보 e.g. ) TM Lock : TM – ObjectID – 0 TX Lock : TX – Undo segment 번호 + Transaction 번호 – Transaction slot
  4. 4. Database security and management, WareValley. http://www.WareValley.com Enqueue Lock  Enqueue resource 구조체 (Hash bucket 으로 되어 있으며 Hash 값이 같은 것은 Linked list로… 등등… 자세한 설명은 Pass) http://wiki.gurubee.net/pages/viewpage.action?pageId=3902548
  5. 5. Database security and management, WareValley. http://www.WareValley.com TX Lock ( = Transaction Lock )  Transaction을 시작 시 Undo Segment Head에 위치한 Transaction Table에서 Slot을 할당  진행중인 Transaction에서 변경을 가한 Block을 읽을려면 -> Slot 확인 후 필요하다면 CR 생성 ( 즉, 갱신중에도 Blocking 없이 작업 진행 가능)  But, 변경 중인 Record를 변경할려면 TX Lock을 이용하여 액세스 직렬화 진행 -> TX Lock : Transaction이 첫 번째 변경을 시작할 때 설정하고, Commit or Rollback 할 때 해제
  6. 6. Database security and management, WareValley. http://www.WareValley.com TX Lock ( = Transaction Lock )  Enqueue Lock으로 구현 TX Lock : TX – Undo segment 번호 + Transaction 번호 – Transaction slot SELECT * FROM SCOTT.EMP UFOR UPDATE; * Lock Monitor
  7. 7. Database security and management, WareValley. http://www.WareValley.com TX Lock 예제 ( Scenario ) Tx 1 Tx 2 UPDATE SCOTT.EMP SET SAL = SAL + 10 WHERE EMPNO = 7566; UPDATE SCOTT.EMP SET SAL = SAL + 10 WHERE EMPNO = 7499; UPDATE SCOTT.EMP SET SAL = SAL + 10 WHERE EMPNO = 7369; UPDATE SCOTT.EMP SET SAL = SAL + 10 WHERE EMPNO = 7499; UPDATE SCOTT.EMP SET SAL = SAL + 10 WHERE EMPNO = 7521;  Tx 1 을 먼저 실행한 뒤 Commit을 하지 않고,  Tx 2 를 순서대로 실행 누가 봐도 7499에서 Block 된다고 예상 가능
  8. 8. Database security and management, WareValley. http://www.WareValley.com TX Lock 예제 ( Orange Monitoring Tools ) * Lock Monitor * Transaction Monitor * Session Monitor
  9. 9. Database security and management, WareValley. http://www.WareValley.com TX Lock 예제 ( Oracale Dynamic Views ) * v$session_wait* v$lock Event 명칭 Lock 모드 원인 Enq: TX – row lock contention Exclusive(6) DML Row Lock Shared(4) 무결성 제약 위배 가능성 Shared(4) 비트맵 인덱스 엔트리 갱신 enq: TX – allocation ITL entry Shared(4) ITL 부족 enq: TX – allocation ITL entry Shared(4) 인덱스 분할 enq: TX – allocation ITL entry Shared(4) 읽기 전용 Tablespace, Prepared TxN(2PC), Free Lists 등등 - 138 세션이 137 세션을 Block (Block : 1) - 137 은 150 이 Exclusive 모드 (LMode : 6)으로 획득한 TX Lock을 Exclusive 모드(Request : 6) 으로 요청한 채 대기 - 경합이 발생한 TX Lock의 식별자는 <TX-655387-1352>
  10. 10. Database security and management, WareValley. http://www.WareValley.com TX Lock (v$session_wait parameters ) P1 : Lock Type, Lock Mode , P2 : Undo Segment No , Transaction Table Slot , P3 : Transaction Slot Warp Sequence

×