SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
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
오렌지팀 윤석준 선임연구원
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 으로 구현되어 있음)
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
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
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 할 때 해제
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
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 된다고 예상 가능
Database security and management, WareValley.
http://www.WareValley.com
TX Lock 예제 ( Orange Monitoring Tools )
* Lock Monitor
* Transaction Monitor
* Session Monitor
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>
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

Contenu connexe

Tendances

Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대PgDay.Seoul
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOI Goo Lee
 
[Practical owi] lock & latch
[Practical owi] lock & latch[Practical owi] lock & latch
[Practical owi] lock & latchEXEM
 
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstatSeok-joon Yun
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2Seok-joon Yun
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle엑셈
 
Tungsten 을활용한 MySQL / Hadoop 동기화
Tungsten 을활용한 MySQL / Hadoop 동기화Tungsten 을활용한 MySQL / Hadoop 동기화
Tungsten 을활용한 MySQL / Hadoop 동기화I Goo Lee
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle엑셈
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL TuningPgDay.Seoul
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter엑셈
 
PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PgDay.Seoul
 
BlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracleBlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracle엑셈
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTI Goo Lee
 
Commit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracleCommit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracle엑셈
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀EXEM
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle엑셈
 

Tendances (20)

Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIO
 
[Practical owi] lock & latch
[Practical owi] lock & latch[Practical owi] lock & latch
[Practical owi] lock & latch
 
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
[2015-07-10-윤석준] Oracle 성능 관리 & v$sysstat
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle
 
Tungsten 을활용한 MySQL / Hadoop 동기화
Tungsten 을활용한 MySQL / Hadoop 동기화Tungsten 을활용한 MySQL / Hadoop 동기화
Tungsten 을활용한 MySQL / Hadoop 동기화
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter
 
PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오PostgreSQL 공간관리 살펴보기 이근오
PostgreSQL 공간관리 살펴보기 이근오
 
BlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracleBlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracle
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 
Commit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracleCommit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracle
 
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 5회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle
 

Similaire à [2015 05-29] Oracle Lock

Multitasking on DB and Django
Multitasking on DB and DjangoMultitasking on DB and Django
Multitasking on DB and DjangoSeokhwanMoon
 
이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력 이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력 Younghoon Moon
 
CUBRID(큐브리드) 트랜잭션 처리 원리
CUBRID(큐브리드) 트랜잭션 처리 원리CUBRID(큐브리드) 트랜잭션 처리 원리
CUBRID(큐브리드) 트랜잭션 처리 원리경오 이
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study엑셈
 
(알도개) 오라클 블록체인 아키텍처 살펴보기
(알도개) 오라클 블록체인 아키텍처 살펴보기(알도개) 오라클 블록체인 아키텍처 살펴보기
(알도개) 오라클 블록체인 아키텍처 살펴보기Jay Park
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)Osc Osc
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceKlaytn
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study엑셈
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)Amazon Web Services Korea
 
Ethereum Basics Part 2
Ethereum Basics Part 2Ethereum Basics Part 2
Ethereum Basics Part 2Soobok Jin
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)DK Lee
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기John Kim
 
(120128) #fitalk sql server forensics
(120128) #fitalk   sql server forensics(120128) #fitalk   sql server forensics
(120128) #fitalk sql server forensicsINSIGHT FORENSIC
 

Similaire à [2015 05-29] Oracle Lock (20)

Multitasking on DB and Django
Multitasking on DB and DjangoMultitasking on DB and Django
Multitasking on DB and Django
 
이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력 이더리움의 현황, 한계점 및 개선노력
이더리움의 현황, 한계점 및 개선노력
 
CUBRID(큐브리드) 트랜잭션 처리 원리
CUBRID(큐브리드) 트랜잭션 처리 원리CUBRID(큐브리드) 트랜잭션 처리 원리
CUBRID(큐브리드) 트랜잭션 처리 원리
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study
부적절한 DDL 수행에 의한 성능 저하 분석 사례_Maxgauge case study
 
(알도개) 오라클 블록체인 아키텍처 살펴보기
(알도개) 오라클 블록체인 아키텍처 살펴보기(알도개) 오라클 블록체인 아키텍처 살펴보기
(알도개) 오라클 블록체인 아키텍처 살펴보기
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
 
OracleHistory3
OracleHistory3OracleHistory3
OracleHistory3
 
TXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API ServiceTXGX 2019_Jesse_Klaytn API Service
TXGX 2019_Jesse_Klaytn API Service
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
 
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
9월 웨비나 - AWS에서의 네트워크 보안 (이경수 솔루션즈 아키텍트)
 
Ethereum Basics Part 2
Ethereum Basics Part 2Ethereum Basics Part 2
Ethereum Basics Part 2
 
Servlet3
Servlet3Servlet3
Servlet3
 
Arcus
ArcusArcus
Arcus
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 
(120128) #fitalk sql server forensics
(120128) #fitalk   sql server forensics(120128) #fitalk   sql server forensics
(120128) #fitalk sql server forensics
 

Plus de Seok-joon Yun

Retrospective.2020 03
Retrospective.2020 03Retrospective.2020 03
Retrospective.2020 03Seok-joon Yun
 
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image ConverterAWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image ConverterSeok-joon Yun
 
아파트 시세,어쩌다 머신러닝까지
아파트 시세,어쩌다 머신러닝까지아파트 시세,어쩌다 머신러닝까지
아파트 시세,어쩌다 머신러닝까지Seok-joon Yun
 
Pro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformancePro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformanceSeok-joon Yun
 
Doing math with python.ch07
Doing math with python.ch07Doing math with python.ch07
Doing math with python.ch07Seok-joon Yun
 
Doing math with python.ch06
Doing math with python.ch06Doing math with python.ch06
Doing math with python.ch06Seok-joon Yun
 
Doing math with python.ch05
Doing math with python.ch05Doing math with python.ch05
Doing math with python.ch05Seok-joon Yun
 
Doing math with python.ch04
Doing math with python.ch04Doing math with python.ch04
Doing math with python.ch04Seok-joon Yun
 
Doing math with python.ch03
Doing math with python.ch03Doing math with python.ch03
Doing math with python.ch03Seok-joon Yun
 
Doing mathwithpython.ch02
Doing mathwithpython.ch02Doing mathwithpython.ch02
Doing mathwithpython.ch02Seok-joon Yun
 
Doing math with python.ch01
Doing math with python.ch01Doing math with python.ch01
Doing math with python.ch01Seok-joon Yun
 
Pro typescript.ch03.Object Orientation in TypeScript
Pro typescript.ch03.Object Orientation in TypeScriptPro typescript.ch03.Object Orientation in TypeScript
Pro typescript.ch03.Object Orientation in TypeScriptSeok-joon Yun
 
C++ Concurrency in Action 9-2 Interrupting threads
C++ Concurrency in Action 9-2 Interrupting threadsC++ Concurrency in Action 9-2 Interrupting threads
C++ Concurrency in Action 9-2 Interrupting threadsSeok-joon Yun
 
Welcome to Modern C++
Welcome to Modern C++Welcome to Modern C++
Welcome to Modern C++Seok-joon Yun
 
[2015-07-20-윤석준] Oracle 성능 관리 2
[2015-07-20-윤석준] Oracle 성능 관리 2[2015-07-20-윤석준] Oracle 성능 관리 2
[2015-07-20-윤석준] Oracle 성능 관리 2Seok-joon Yun
 
[KOSSA] C++ Programming - 18th Study - STL #4
[KOSSA] C++ Programming - 18th Study - STL #4[KOSSA] C++ Programming - 18th Study - STL #4
[KOSSA] C++ Programming - 18th Study - STL #4Seok-joon Yun
 
[KOSSA] C++ Programming - 17th Study - STL #3
[KOSSA] C++ Programming - 17th Study - STL #3[KOSSA] C++ Programming - 17th Study - STL #3
[KOSSA] C++ Programming - 17th Study - STL #3Seok-joon Yun
 

Plus de Seok-joon Yun (20)

Retrospective.2020 03
Retrospective.2020 03Retrospective.2020 03
Retrospective.2020 03
 
Sprint & Jira
Sprint & JiraSprint & Jira
Sprint & Jira
 
Eks.introduce.v2
Eks.introduce.v2Eks.introduce.v2
Eks.introduce.v2
 
Eks.introduce
Eks.introduceEks.introduce
Eks.introduce
 
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image ConverterAWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image Converter
 
아파트 시세,어쩌다 머신러닝까지
아파트 시세,어쩌다 머신러닝까지아파트 시세,어쩌다 머신러닝까지
아파트 시세,어쩌다 머신러닝까지
 
Pro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformancePro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, Performance
 
Doing math with python.ch07
Doing math with python.ch07Doing math with python.ch07
Doing math with python.ch07
 
Doing math with python.ch06
Doing math with python.ch06Doing math with python.ch06
Doing math with python.ch06
 
Doing math with python.ch05
Doing math with python.ch05Doing math with python.ch05
Doing math with python.ch05
 
Doing math with python.ch04
Doing math with python.ch04Doing math with python.ch04
Doing math with python.ch04
 
Doing math with python.ch03
Doing math with python.ch03Doing math with python.ch03
Doing math with python.ch03
 
Doing mathwithpython.ch02
Doing mathwithpython.ch02Doing mathwithpython.ch02
Doing mathwithpython.ch02
 
Doing math with python.ch01
Doing math with python.ch01Doing math with python.ch01
Doing math with python.ch01
 
Pro typescript.ch03.Object Orientation in TypeScript
Pro typescript.ch03.Object Orientation in TypeScriptPro typescript.ch03.Object Orientation in TypeScript
Pro typescript.ch03.Object Orientation in TypeScript
 
C++ Concurrency in Action 9-2 Interrupting threads
C++ Concurrency in Action 9-2 Interrupting threadsC++ Concurrency in Action 9-2 Interrupting threads
C++ Concurrency in Action 9-2 Interrupting threads
 
Welcome to Modern C++
Welcome to Modern C++Welcome to Modern C++
Welcome to Modern C++
 
[2015-07-20-윤석준] Oracle 성능 관리 2
[2015-07-20-윤석준] Oracle 성능 관리 2[2015-07-20-윤석준] Oracle 성능 관리 2
[2015-07-20-윤석준] Oracle 성능 관리 2
 
[KOSSA] C++ Programming - 18th Study - STL #4
[KOSSA] C++ Programming - 18th Study - STL #4[KOSSA] C++ Programming - 18th Study - STL #4
[KOSSA] C++ Programming - 18th Study - STL #4
 
[KOSSA] C++ Programming - 17th Study - STL #3
[KOSSA] C++ Programming - 17th Study - STL #3[KOSSA] C++ Programming - 17th Study - STL #3
[KOSSA] C++ Programming - 17th Study - STL #3
 

[2015 05-29] Oracle Lock

  • 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. 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. 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. 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. 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. 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. 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. Database security and management, WareValley. http://www.WareValley.com TX Lock 예제 ( Orange Monitoring Tools ) * Lock Monitor * Transaction Monitor * Session Monitor
  • 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. 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