Timestamp Ordering 타임스탬프(Timestamp) Ordering(순서) 기법 TS라고 함,
토마스(Thomas)쓰기규칙에서는 불필요한 write연산 무시하여
TS(Ti) < write-TS(x)인 경우 write연산을 수행하지 않고 Ti 수행가능,
장점 : 직렬가능, 교착상태방지,
단점 : 연쇄복귀, 기아문제
토마스 쓰기 규칙
토픽 이름 () Timestamp Ordering
분류 DB > 동시성제어(병행 제어) > Timestamp Ordering
키워드(암기) 타임스탬프 지정, 생성방법(논리적계수, 시스템시계), 종류(read_TS, write_TS)
암기법(해당경우)  

기출문제

번호 문제 회차
1 13. 타임스탬프 순서(Timestamp Ordering) 기법에 대하여 설명하시오. 모의_2017.01
2 8. 동시성 제어 기법에 대하여 다음을 설명하시오.
. 타임스탬프 순서(Timestamp Ordering) 기법에 대하여 설명하시오.
. Wait-Die, Wound-Wait 알고리즘에 대하여 설명하시오..
합숙_2016.07
3 데이터베이스 동시성 제어기법인 2PL(2 Phase Locking), Timestamp Ordering, 낙관적 검증기법을 비교 설명하시오. 합숙_2014.01

 

I. 시스템 시계와 논리적 계수기를 이용한 순서지정 방식, Timestamp Ordering 개요

. Timestamp Ordering 정의

- 트랜잭션을 식별하기 위해 DBMS 부여하는 유일한 식별자인 타임 스탬프를 지정하여 트랜잭션 간의 순서를 미리선택하는 순서대로 직렬화하여 실행한 결과가 같음을 보장하는 동시성 제어 기법

- DBMS 부여하는 트랜젝션의 식별자인 타임스탬프를 이용하여 트랜젝션 실행의 순서를 미리 결정

. Timestamp Ordering 특징

구분 설명
직렬성 보장 - 상충되는 연산들이 타임 스탬프 순서로 처리됨으로 직렬성 (Serializability)이 보장
교착상태 방지 - 트랜잭션이 결코 기다리는 경우가 없으므로 교착상태 (Deadlock) 방지
연쇄복귀 초래 - 문제점은 연쇄복귀 (Cascading Rollback) 초래

 

II. Timestamp Ordering 개념도 생성 메커니즘

. Timestamp Ordering 개념도

- DBMS 부여하는 트랜젝션의 식별자인 타임스탬프를 이용하여 트랜젝션 실행의 순서를 미리 결정

. Timestamp Ordering 생성 메커니증

분류 구분 설명
생성방법 논리적 계수
(Logical Counter)
트랜잭션이 시스템에 들어올 때마다 계수를 하나씩 증가시켜 트랜잭션의 타임스탬프 값으로 부여

시스템 시계
(System Clock)
트랜잭션이 시스템에 들어오면 시스템 시계의 값을 그 트랜잭션의 타임스탬프 값으로 부여
타임스탬프 종류 read_TS(x) 데이터 아이템 x 의 판독 타임스탬프로서 read(x)를 성공적으로 수행한 트랜잭션의 타임스탬프 중에서 제일 큰 타임스탬프

write_TS(x) 데이터 아이템 x 의 기록 타임스탬프로서 write(x)를 성공적으로 수행한 트랜잭션의 타임스탬프 중에서 제일 큰 타임스탬프

- 타임스탬프를 동시성 제어의 기준으로 사용하여 상충되는 연산들을 타임스탬프 순서대로 처리함으로써 직렬성 보장

. Timestamp Ordering 순서 규약

구분 규약 설명
트랜젝션 Ti 읽기 시도
- read(x) 수행
TS(Ti) < write_TS(x) - read(x) 거부하고 Ti 취소시켜 복귀시킴
- TS(Ti)보다 타임스탬프가 어떤 트랜젝션이 Ti 접근하기 전에 이미 x 값을 먼저 생성

TS(Ti) >= write_TS(x) - read(x) 허용하고 read_TS(x) TS(Ti)와 현재의 read_TS(x) 중에서 것으로 설정
트랜젝션 Ti 쓰기 시도
- write(x) 수행
TS(Ti) < read_TS(x) - write(x) 거부하고 Ti 취소시켜 복귀시킴
- TS(Ti)보다 타임스탬프가 트랜젝션이 x 값을 먼저 판독

TS(Ti) < write_TS(x) - write(x) 거부하고 Ti 취소시켜 복귀시킴
- TS(Ti)보다 타임스탬프가 트랜젝션이 x 값을 이미 기록

TS(Ti) >= read_TS(Ti)
또는
TS(Ti) >= write_TS(Ti)
- write(x) 허용하고 write_TS(x) 값은 TS(Ti)로 고정

- 타임스탬프를 이용하여 Dead Lock 방지하기 위해 Wait-Die/Wound-Wait 알고리즘이 사용됨

 

III. 타임스탬프 이용한 Dead Lock 방지 알고리즘

Wait-Die Wound-Wait

- 기법 모두 불필요한 복귀가 자주 발생한다는 문제점이 있으며, 토마스의 기록 규칙을 통해 개선 가능

 

반응형
2PL or 2PLP 2PL(Two Phase Locking) 기법(Protocol),
변형으로, 정적(Static) 2PL,
엄격한(Strict) 2PL, 엄중한(Rigorous) 2PL 등이 있음


토픽 이름() 2PL(2 Phase Locking)
분류 DB > 동시성제어 > 2PL or 2PLP
키워드(암기) Lock(Read lock, write lock, X-lock,S-lock) 2PL(lock,unlock,Strict/Rigorous/Static 2PL),
Validation(read-validation-execution, finish to start, start to start)
Timestamp ordering(system계수기, 논리개수기, wait-die, wound-wait)
MVCC(Undo영역, CR-copy, Rollback segment, Snapshot too old, 오라클-세그먼트, MS-temp DB, 문장수준MVCC, 트랜잭션수준 MVCC)
암기법(해당경우) 확수

 

기출문제

번호 문제 회차
1 데이터베이스 동시성 제어기법인 2PL(2 Phase Locking), Timestamp Ordering, 낙관적 검증기법을 비교 설명하시오 2014.01.합숙공통.2일차
2 2PL 대해서 Strict, Rigorous, Static 구분하여 설명하시오. 2012.08.합숙공통.5일차
3 6. 데이터베이스 트랙잭션 동시성 제어를 위한 2PL(2 Phase Locking)MVCC(Multiversion concurrency control)기법에 대하여 설명하시오. 2018.01.모의관리.3
4 2. 대이터베이스의 2PC(2-phase commit)2PL(2-phase locking)에 대해 비교 설명하시오. 2016.10.모의관리.1
5 2PL 설명하고 Strict, Rigorous, Static으로 비교 설명하시오. 2014.01.모의관리.1
6 2PL 설명하고 Strict, Rigorous, Static으로 비교 설명하시오. 2013.01.모의응용.1
7 트랜잭션들이 모두 로킹(locking)규약을 준수하였음에도 병행제어의 모순성이 발생한 예를 제시하고, 트랜잭션 직렬 가능성을 보장할 있는 규약으로 2PL(two phase locking protocol) 설명하시오. 2010.12.모의관리.4

 

I. 2단계 로킹 기법,  2PL 개요

. 2PL 개념

- DB무결성 보장을 위한 동시성제어를 위하여, 모든 트랜잭션들이 Lock Unlock연산을 확장단계와 수축단계로 구분하여 수행하는 기법

- 모든 트랜잭션들이 lock unlock 연산을 확장단계와 수축단계로 구분하여 수행함

구분 설명
확장단계 트랜잭션은 lock 수행할 있고 unlock 수행할 없는 단계
수축단계 트랜잭션은 unlock 수행할 있고 lock 수행할 없는 단계

. 2 단계 로킹 규약 이론(Two-Phase locking protocol theorem)

- 모든 로킹 연산(read_lock, write_lock) 들이 최초의 unlock 연산보다 앞에 나오는 경우, 트랜잭션은 2 단계 로킹 프로토콜을 준수

- 만일 모든 트랜잭션들이 2단계 로킹 규약을 준수한다면, 모든 트랜잭션들은 직렬성을 보장받게 됨

- 역은 성립하지 않음, 직렬 가능성을 보장할 있는 규약으로 가장 많이 사용

II. 2 단계 로킹의 개념도 2 단계 로킹의 이해

. 2 단계 로킹 개념도

- 확장단계와 수축단계 차단단계를 지원하는 2PL 개념도

 - 확장단계 : 트랜잭션은 lock 수행할 있고 unlock 수행할 없는 단계

- 수축단계 : 트랜잭션은 unlock 수행할 있고 lock 수행할 없는 단계

- 직렬가능성을 보장할 있는 규약으로 가장 많이 사용됨

. 2 단계 로킹 예제

 

- 하나의 트랜잭션내에서 확장단계를 거치고, 수축단계를 거치면서 lock unlock을수행

- 2단계로킹(2PL : 2 Phase Locking) lock하는 시간이 있고, unlock하는 시간이 있음

- 직렬가능성을 보장할 있는 규약으로 가장 많이 사용됨

 

. 2 단계 로킹 기법의 문제점 피하기 위한 2 단계 로킹 기법

- 교착상태발생 가능성 있음 교착상태 예방과 교착상태 탐지로 해결

- 2 단계 로킹 기법의 문제점

- 2 단계 로킹 기법이 deadlocks 완전한 제거를 나타내지는 못함

- 2 단계 로킹 기법 상태에서 Cascading rollback 가능함

- 교착상태 예방과 교착상태 탐지로 해결

 

III. 기본적인 2 단계 로킹 기법의 문제점을 피하기 위한 로킹기법

종류 Strict 2PL Rigorous 2PL Static 2PL
내용 - 2 단계 로킹
- 모든 독점 lock(lock-X) transaction 완료될 때까지 unlock 하지 않음, 그대로 유지
- commits/aborts 수행될 까지 모든 exclusive locks 잡고 있어야
- 2 단계 로킹
- 모든 lock transaction 완료될 때까지 unlock 하지 않음
- 트랜잭션은 commits/aborts 수행될 때까지 모든 locks 잡고 있음
- Transaction 수행 전부터 transaction 읽기 집합과 쓰기 집합을 미리 선언
- Transaction 접근하려는 모든 항목들에 lock 획득
특징 연쇄복귀(Cascading rollback)문제 발생하지 않음 deadlock 회피 못함 Strict 2PLP 모다 제한적임
Deadlock 회피 못함
- Dead lock 발생하지 않으나 비현실적임

 

IV. 교착상태의 해결방법

해결방법 설명
교착상태 방지 프로토콜 - 교착상태 회피를 위한 방법으로 트랜잭션의 시간 스탬프를 이용하는 방법
Wait-die 기법 - 요청자가 기득권자보다 고참이면, 기득권자가 종료될 때까지 기다림(Wait)
- 요청자가 신참이면 죽고(die-rollback) 다시 시작함
Wound-wait 기법 - 요청자가 기득권자보다 고참이면 기득권자를 종료(Wound-rollback)시킴
- 요청자가 신참이면 기득권자가 종료될 때까지 기다림 (Wait)

- 교착상태 해결방법으로 회피(Avoidance), 예방(prevention), 탐지(Detection), 회복(Rollback) 있음.

 

V. 동시성 보장기법 비교

구분 2PL(2 Phase Locking) Timestamp Ordering 낙관적검증기법
개념도


작동방식 확장단계: 트랜잭션은 오로지 lock 수행가능
수축단계: 트랜잭션은 오로지 unlock 수행가능
시스템시계: 시스템시간을 타임스탬프 값으로 부여
논리적계수기: 트랜잭션 발생시 마다 카운터를 하나씩 증가시켜 타임스탬프로 부여
트랜잭션 수행 동안 트랜잭션을 위해 유지되는 데이터 항목들의 지역 사본에 대해서만 갱신이 이루어짐
트랜잭션 종료시 동시성을 위한 트랜잭션직렬화가 검증되면 일시에 DB 반영함
장점 직렬가능성을 보장 위해 가장 많이 사용됨 트랜잭션이 결코 기다리는 경우가 없으므로 교착상태(Deadlock)를 방지할 수 있음 트랜잭션종료 시 동시성 검증으로 비교적 동작이 단순함
단점 교착상태발생가능 (Deadlock)
교착상태 예방과 교착상태 탐지로 해결
연쇄복귀(Cascading Rollback)를 초래할수 있음 트랜잭션이 몰리는 경우 동시성검증으로 인한 성능저하발생가능성
응용 휴대용 단말용 플래시메모리 2PL 웹 시스템 OLTP 제어용 업무 구분이 명확하여 중복이 없는 트랜잭션

 

VI. 동시성 제어를 위한 과제

. DBMS 선택 충분한 검토필요(Implicit Lock, 자동 Rollback, 지연갱신 )

. DBMS 제공 메커니즘 내에서 최고의 성능구현은 개발자, 운용자의책임

      (Transaction 단위구성 row<page<table<db, Locking 구사기법, Dead Lock 방지/탐지)

. DB 구축시 Data 정규화의 수준조절로 성능향상 바람직

(최소한의중복허용, 분석, 설계에서 운용까지 표준화된 절차수립)

. MMDB, OODB 출현으로 Transaction 장기화경향

(최적성능하의 병행성 제어는 DB 구현분야의 요소기술)

반응형
동시성 제어
(병행 제어)
문제점 동시성제어 : 다중사용자환경에서트랜잭션을직렬화하여동시실행을지원하는제어기술
- 갱신내용손실(Lost Update), 현황파악오류(Dirty Read), 모순성(Inconsistency), 연쇄복귀불가(Cascading Rollback)
트랜잭션 시간순으로 암기 갱현모연
LDIC
토픽 이름 () 동시성 제어 문제점
분류 동시성 제어 > 문제점
키워드(암기) 다중사용자환경, 트랜잭션 직렬화, 갱신손실, 현황파악오류, 모순성, 연쇄복귀
암기법(해당경우) 갱현모연, 2낙타다 LDIC

 

기출문제

번호 문제 회차
1 다중 비전 동시성 제어(MVCC: Multi Version Concurrency Control) 111.정보관리.1.1
2 2. 데이터베이스 동시성 제어가 보장되지 않을 발생되는 문제점과 동시성 제어기법에 대해서 설명하시오. 합숙_2018.08
3 DB 트랜잭션에 대해 다음을 설명하시오.
  . DB 트랜잭션의 개념과 4가지 충족요건 설명
  . 트랜잭션 고립화의 수준과 낮은 트렌젝션 고립화로 발생하는 문제 설명
  . 트랜젝션 동시성 제어방법 설명
합숙_2013.07

 

I. 데이터베이스 무결성 확보를 위한 동시성 제어의 개요

. 동시성 제어의 정의

- 다중사용자환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 ‘직렬성을 보장하고’, 성공적으로 동시에 실행될 있도록 지원하는 기능

- 다중사용자환경을 지원하는 DB system의경우 필수적으로 지원해야하는 기능으로 병행제어라고도

- 트랜잭션의 직렬화 수행보장

II. 동시성 제어를 하지 않은 경우 발생하는 문제점

문제점 개념도 설명
갱신손실
(Lost Update)

- 이전 트랜잭션이 데이터를 갱신한 트랜잭션을 종료하기 전에 나중 트랜잭션이 갱신 값을 덮어쓰는 경우 발생
현황파악오류
(Dirty Read)

-트랜잭션의 중간수행 결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
모순성
(Inconsistency)

- 트랜잭션이 동시에 실행할 DB 일관성이 없는 상태로 남는문제
연쇄복귀
(Cascading Rollback)

-복수의 트랜잭션이 데이터공유시 특정트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소불가능

 

III. 동시성 제어 기법

문제점 설명
Locking 기법 - 트랜잭션이 사용하는 자원에 대하여 상호 배제(Mutual Exclusive) 기능을 제공하는 기법
- 상호배제는 특정 트랜잭션이 데이터 항목에 대하여 잠금(Lock)을 설정한 트랜잭션이 해제(unlock) 때까지 데이터를 독점적으로 사용할 있는
2PL
(Phase Lock)
- 모든 트랜잭션들이 Lock Unlock 연산을 확장 단계와 수축 단계로 구분하여 수행
- 확장단계 : 트랜잭션은 lock 수행할 있고, unlock 수행할 없는 단계
- 수축단계 : 트랜잭션은 unlock 수행할 있고, lock은 수행할 수 없는 단계
Timestamp - 시스템에서 생성하는 고유 번호인 시간 스탬프를 트랜잭션에 부여하는 것으로 트랜잭션 간의 순서를 미리 선택하는 것 (시스템 시계, 논리적 계수기 활용)
낙관적 검증
(Validation)
- 트랜잭션이 어떠한 검증도 수행하지 않고, 일단 트랜잭션을 수행하고, 트랜잭션 종료 검증을 수행하여 데이터베이스에 반영
다중버전 병행제어 - 하나의 데이터 아이템에 대해 여러 버전의 값 유지
- 트랜잭션의 타임스탬프와 접근하려는 데이터 아이템의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬가능성이 보장되는 적절한
반응형
  ARIES [정의] 데이터베이스의장애발생시 WAL(로그선행기법) 통해기록된 LSN(로그순차번호) 이용한회복기법
[특징] 로그순번기록, 논리/물리적 REDO연산, 연산최적화
[회복알고리즘 3단계] 분석-Redo-Undo
[회복알고리즘데이터구조]
Log(LSN할당-write,commit,abort,end 레코드에 LSN부여)
Transaction Table(트랜젝션 ID,state 가장최신 LSN),
Dirty Page Table(버퍼의오손페이지 LSN)
[원칙] write ahead logging(모든변화기록),
Repeating history during redo(crash 후모든재실행),
Logging changes during undo(동일 action 최소화)


 

토픽 이름 () ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)
분류 DB > 기타
키워드(암기) 데이터 회복 기법, 회복 3단계(분석, REDO, UNDO), 필요정보(로그, 트랜잭션 테이블, 오손 페이지 테이블)
암기법(해당경우)

 

기출문제

번호 문 제 회 차
1 8. 데이터베이스 회복기법에서의 REDO UNDO, ARIES 회복기법에 대해 설명하시오. 합숙_2019.08.공통.Day-3
2 10. ARIES(Algorithms for Recovery and Isolation Exploiting Semantics) 회복 알고리즘에 대해 설명하시오. 합숙_2016.01.관리.Day-2
3 2. 다음은 ARIES 회복 기법에 의해 남겨진 DBMS log 내용들이다. ARIES 회복기법에 대해 설명하고 다음 log 내용을 이용하여 회복 과정을 서술하시오. 모의_2018.10.관리.2
4 ARIES회복 알고리즘에 대해 설명하시오. 모의_2013.07.관리.1

 

I. 빠른 데이터베이스 복구를 위한 ARIES 회복 알고리즘

. ARIES 정의

- REDO 역사 반복(Repeating history) 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행하는 알고리즘

. ARIES 특징

UNDO 붕괴가 발생했을 때 완료되지 않은 상태였던 진행 트랜잭션은 UNDO
UNDO 로깅하여 도중 실패 반복 하지 않음 UNDO 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음

 

II. ARIES 회복 알고리즘의 3단계와 필요한 정보

. ARIES 회복 알고리즘의 3단계

단계 이 름   
1단계 분석단계 붕괴가 발생한 시점에 버퍼에 있는 수정된 페이지와 진행 트랜잭션을 파악, REDO 시작되어야 하는 로그의 위치를 결정
2단계 REDO단계 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때 까지 REDO 수행, REDO 로그 레코드의 리스틀 관리하여 불 필요한 REDO 연산이 수행되지 않도록
3단계 UNDO단계 로그를 역순으로 읽으면서 진행 트랜잭션의 연산을 역순으로 UNDO

 

 

. ARIES 회복 알고리즘에서 필요한 정보

구 분    핵 심
로그(LOG) 페이지에 대한 갱신(write), 트랜잭션 완료(commit), 트랜잭션 철회(abort), 갱신에 대한 UNDO, 트랜잭션 종료(end) 시 기록, 로그 레코드마다 로그 순차번호(LSN) 할당
(LSN: 디스크에 저장된 로그 레코드의 주소로서 단조 증가 – Log Sequence Number)
LSN할당
트랜잭션 테이블 진행 트랜잭션에 대한 정보(트랜잭션 식별자, 트랜잭션 상태, 해당 트랜잭션의 가장 최근 로그레코드의 LSN 관리 진행 트랜잭션에 대한 정보
오손 페이지 테이블 버퍼에 있는 오손 페이지에 대한 정보(페이지 식별자, 해당 페이지에 대한 가장 최근 로그 레코드 LSN 관리 버퍼에 있는 오손 페이지에 대한 정보

 

III. ARIES에서의 검사점 기록

기록내용 - 로그에 BEGIN_CHECKPOINT, END_CHECKPOINT 레코드를 기록
- 특수 파일에 BEGIN_CHECKPOINT 레코드의 LSN 기록
다중 데이터베이스에서 회복

다중 데이터베이스 트랜잭션
여러 개의 데이터베이스를 액세스하는 트랜잭션으로 이 때 각각의 DBMS들은 서로 다른 회복 기법과 트랜잭션 관리자를 사용할 수 있음
원자성 유지
2단계 완료 프로토콜
- 모든 참여 데이터베이스가 트랜잭션을 완료하도록 하거나 또는 어느 하나도 완료하지 않도록 한다
- 어떤 참여 데이터베이스에 고장이 발생하더라도 트랜잭션이 완료된 상태 또는 철회된 상태로의 회복은 항상 가능

 

IV. 참고

구 분 설 명
역사반복
(Roll Forward)
- REDO 역사 반복(Repeating history): 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위하여 붕괴 발생 이전에 수행했던 모든 연산을 다시 한번 수행. 붕괴가 발생했을 완료되지 않은 상태였던 (진행 트랜잭션) UNDO
- UNDO 로깅하여 도중 실패시 반복 하지 않음: UNDO 때에도 로깅을 함으로써 회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음
LSN
(Long Sequence Number)
- 로그 레코드의 식별자 (로그 레코드는 고유의 식별자를 가짐)
- 로그는 로그파일에 변경된 사항을 덧붙이는(append) 방식으로 기록
- 로그 스위치마다 증가하는 특징
반응형

'정보관리기술사 > DB_데이터분석' 카테고리의 다른 글

2PL or 2PLP(2 Phase Locking)  (0) 2023.08.04
동시성 제어  (0) 2023.08.03
그림자페이지(Shadow Paging) 기법  (0) 2023.08.01
체크포인트(Checkpoint) 회복기법  (0) 2023.07.31
로그기반 회복 기법  (0) 2023.07.28
  그림자페이지(Shadow Paging) 기법 [정의] 트랜잭션수행중현재페이지테이블과동일한내용의그림자페이지테이블을생성하여트랜잭션의업데이트실행시현재페이지테이블을변경하고그림자페이지테이블을변경않다가트랜잭션종료시그림자페이지테이블을갱신
'-페이징테이블교체(복구과정), 복구빠름, 분산된그림자테이블로복구, 페이징테이블유지알고리즘복잡
낮은 부하
높은 저장공간
 
토픽이름 그림자페이지 회복기법
분류 DB > 데이터 회복 >그림자페이지회복기법
키워드(암기) - 그림자페이지테이블을 유지
- 에러 발생 , 그림자페이지테이블로 현재 테이블 대체
- 갱신:저장/생성/기록/반영
- 회복:제거/갱신/복구
암기법(해당경우)  

 

기출문제

번호 문제 회차
1 데이터베이스의 회복기법(Recovery) 대하여 다음 내용을 설명하시오.
 1) Redo Undo      2) 로그기반 회복기법
 3) 체크포인트 회복기법   4) 그림자페이지 회복기법
104.컴시응.4

 

I. 그림자페이지테이블 이용한 회복 기법,그림자페이지테이블회복기법의 개요

. 그림자 페이지 테이블 회복 기법의 정의

- 트랜잭션 시작 ,현재 테이블과 동일한 그림자 테이블을 생성하고 트랜잭션 성공 , 현재 페이지의 내용으로 그림자 테이블을 동기화시키고 회복 그림자 테이블을 활용하는 기법

- 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지를 별도 보관

. 그림자 페이지 테이블 회복 기법의 특징

구분 특징 설명
회복 대상 백업 데이터 트랜잭션 내용의 스냅샷인 백업 테이블 활용
적용 전략 병행 적용 다중 트랜잭션 발생 시,로그기반이나 검사점 기법과 병행 적용 필요

 

II. 그림자 페이지 테이블 회복 기법 설명

구분 설명
개념도
갱신 - 트랜잭션 수행 현재 페이지 테이블과 그림자 페이지 테이블을 운용
- 현재 페이지 테이블을 우선 갱신하고, 트랜잭션 종료 그림자 페이지 테이블 갱신.
- 다중 사용자 환경에서는 추가적인 로깅 필요
회복동작 - 장애 발생 , 그림자 페이지 테이블의 내용을 이용하여 회복 수행
장점 - 별도의 로그 처리 필요 없어 상대적으로 낮은 부하
단점 - 페이지 테이블 관리 필요, 상대적으로 높은 저장 공간 요구

 

III. 그림자 페이지 테이블 회복 기법 프로세스

구분 수행 설명
갱신 저장 - 현재 페이지 테이블은 메모리,그림자 페이지 테이블은 HDD 저장

생성 - 트랜잭션 시작 시점에 현재 페이지 테이블의 내용과 동일한 그림자페이지테이블 생성

기록 - 트랜잭션 변경 연산이 수행되면,메모리의 현재 페이지 테이블 내용만 갱신

반영 - 트랜잭션이 성공하는 경우, 현재 페이지 테이블 내용을 그림자페이지테이블로 반영
회복 제거 - 장애 발생 ,메모리의 현재 페이지 테이블 내용 Drop

변경 - 현재 페이지 테이블을 HDD 저장된 그림자 페이지 테이블로 변경

복구 - 그림자 페이지 테이블의 내용을 기반으로 회복 작업 수행

 

IV. 데이터 회복 기법 비교

구분 로그 CheckPoint 그림자 페이징
복구과정 - UNDO, REDO 사용 - UNDO, REDO 사용 - 페이징 테이블 교체
복구속도 - 로그 검색 수행으로
매우 느림
- 제한된 검사점 만을
검색하여 로드 대비 빠름
- 단순한 페이징 테이블
 교체로 빠름
디스크 사용 - 단위 트랜잭션 변경유지
만으로 적음
- 다수의 트랜잭션 변경
 유지로 로드 보다 많음
- 모든 데이터의 동일 형상
 유지로 많이 사용
복구 데이터 - 트랜잭션당 로그 - 검사점 시점 로그 - 분산된 그림자 테이블
확장성 - 트랜잭션당 로그 관리로
 용이
- 검사점 변경만으로 용이 - 페이징 테이블 유지
 알고리즘 복잡

 

[참고자료]

 

 

반응형
  체크포인트(Checkpoint) 회복기법 [정의] 체크포인트를기록후장애발생시체크포인트이후의로그로만복구하는회복기법
- 키워드 : check point, redo, undo

체리언
토픽이름 체크포인트 회복기법
분류 DB>데이터 회복 >체크포인트 회복 기법
키워드(암기) - 검사점(체크포인트)기점으로 회복할 작업 구분. 검사점 이전의 로그는 회복안함
운영 효율성 증대 / 검사점 시점 정의에 따르는 트랜잭션 복구 노력 비용 증가
암기법(해당경우)  

기출문제

번호 문제 회차
1 8. 데이터베이스의 체크포인트(Checkpoint) 회복기법에 대하여 설명하시오 105.관리.1
2 1. 데이터베이스의 회복기법(Recovery) 대하여 다음 내용을 설명하시오.
  1) Redo Undo
  2) 로그기반 회복기법
  3) 체크포인트 회복기법
  4) 그림자페이지 회복기법
104.컴시응.4
3 5. 데이터베이스의 회복 기법(Recovery) 대하여 다음 내용을 설명하시오.
. REDO UNDO
. 로그기반 회복기법
. 체크포인트 회복기법
모의_2019.10.응용.3
4 4. 데이터베이스 회복기법의 주요 요소인 UNDO/REDO 설명하고, 로그기반 회복기법과 체크포인트 회복기법을 설명하시오 모의_2018.10.응용.4
5 5. 데이터베이스의 회복 기법(Recovery) 대하여 다음 내용을 설명하시오
1)REDO UNDO
2)로그기반 회복기법
3)체크포인트 회복기법
4)그림자페이지 회복기법
5)미디어기반 회복기법
모의_2017.11.관리.2

 

I. 검사점을 이용한 데이터 회복 기법, 체크포인트 회복기법의 개요

. 체크포인트(Checkpoint) 회복 기법의 정의

- 로그 파일에 체크 포인트를 기록하고 장애 발생 시,검사점(Checkpoint) 이후의 트랜잭션에 대해서만 회복 작업을 수행하는 회복 기법

. 체크포인트회복기법의 특징

구분 특징 설명
검사점 주기적 생성 변경 내용에 대해 일정 기간 단위로 체크 포인트 생성
회복 효율성 간결한 검사 회복 시 로그 파일의 정보를 모두 체크할 필요 없음

 

 

II. 체크포인트회복기법의 설명

구분 설명
개념도

- 장애 발생으로부터 마지막 검사점 이후의 트랜잭션을 REDO/UNDO
갱신 - 트랜잭션 수행 , 검사점(Checkpoint) 기반으로 로그 기록 수행
회복 - 트랜잭션 수행 도중 장애 발생시, 로그 정보를 모두 검사하여 REDO UNDO 연산을 실행할 트랜잭션과 체크포인트 선정
- 검사점의 로그 기록을 기반 REDO/UNDO 수행
- 검사점 이전 시작된 트랜잭션은 REDO, 검사점 이후
- 새로 시작한 트랜잭션은 UNDO 리스트
장점 - 검사점에서만 로그 기록으로 운영 효율성 증대
단점 - 검사점 시점 정의에 따르는 트랜잭션 복구 노력 비용 증가

 

II. 검사점 기점 REDO/UNDO 선정 기준

구분 설명
UNDO - 검사 시점 설정 당시 활동중인 트랜잭션은 전부 UNDO 리스트 삽입
REDO - 검사점 시점으로부터 로그를 탐색
- <Ti commit>(수행종료)트랜잭션은 REDO로 추가
- <Ti start>(수행시작)트랜잭션은 UNDO로 유지

 

 

반응형

 

  로그기반 회복 기법 [정의]DB갱신작업의기록인 Log를안정적저장장치에기록하고, DB실패시 Log를사용하여 DB가일관된상태인특정시점으로되돌리는작업
지연, 즉시갱신기법

지즉
토픽이름 로그기반회복기법
분류 DB > 데이터 회복 >로그기반회복기법
키워드(암기) - 즉시 갱신: LogDB에 직접 갱신
>UNDO 수행:트랜잭션 완료 이전의 상태로 돌아감
> ,계속 수행하다가 장애가 나면 다시 처음부터 돌리고 수행
- 지연 갱신: Log 갱신 , Commit , DB 갱신
>REDO: Log 기록하고 있으므로,장애 발생 Log기록 파일 다시 수행
> 로그 파일에만 기록하고 있으므로,마지막 Commit 시점부터 다시 작업 시작
> 어차피 로그 파일만 쓰고 있으므로 시스템 장애가 있으면 로그파일 버리기
암기법(해당경우)  

 

기출문제

번호 문제 회차
2 데이터베이스의 회복기법(Recovery) 대하여 다음 내용을 설명하시오.
 1) Redo Undo
 2) 로그기반 회복기법
 3) 체크포인트 회복기법
 4) 그림자페이지 회복기법
104.컴시응.4

 

I. 로그파일을 이용한 데이터 복구 기법,로그기반회복기법의 개요

.로그기반회복기법의 정의

- DB 변경 내역을 Log 기록하고,데이터 장애 발생 해당 Log 이용하여 데이터를 회복하는 기법

. 로그기반회복기법의 특징

특징 설명
운영부하경감 - 실시간 DB 반영에 대한 부하 경감
속도 저하 - REDO/UNDO 위해 로그 전체를 조사하는 오버헤드

 

II. 로그 기반 회복 기법의 유형

구분 즉시 갱신 기법(Immediate Update) 지연 갱신 기법(Deferred Update)
개념도


트랜잭션 수행 중 갱신 결과를 DB 로그에 즉시 반영 트랜잭션 수행 중 로그만 기록, 트랜잭션 종료 , commit 시점에 DB 반영
장애 회복


로그 기반 Undo 수행 트랜잭션 종료 시 : REDO 실행
트랜잭션 미 종료 시: log 무시
장점 변경 내용 즉시 반영하므로 안정성 뛰어남 트랜잭션 완료 시까지, DB부하 적음
단점 동시성 제어가 중요하며, 로그 처리를 위한 부하 발생 로그 검색 부하가 발생하며, DB반영 트랜잭션 전체를 REDO해야

- 운영과 복원 시점의 성능을 고려하여 회복기법 선정 필요

 

[참고자료]

 

 

 

반응형

+ Recent posts