Professional Documents
Culture Documents
데이타베이스 회복 기법
데이타베이스 회복 기법
데이타베이스 회복 기법
16.1 회복 개념
16.2 지연갱신을 기반으로 한 회복 기법
16.3 즉시갱신을 기반으로 한 회복 기법
16.4 그림자 페이지 기법
16.5 ARIES 회복 알고리즘
16.6 다중 데이타베이스에서의 회복
16.7 데이타베이스 백업과 재해적 실패로부터의 회복
16.1.1 회복 개요 및 회복 알고리즘의 분류
16.1.5 트랜잭션 복귀
– 그림자 갱신 (shadowing)
• 갱신 후의 값을 디스크의 다른 위치에 기록한다 .
• 디스크에 어떤 데이타 항목에 대한 여러개의 사본이 존재할 수 있다 .
T1 T2 T3
[ 그림 16.1] 연쇄 복귀
(a) 세 트랜잭션들의 읽기 / 쓰기 연산
[ 그림 16.1] 연쇄 복귀 (cont.)
(b) 붕괴시의 시스템 로그
BEGIN
BEGIN
READ(A)READ(D)WRITE(D)
T1
BEGIN
시간
시스템 붕괴
[ 그림 16.1] 연쇄 복귀 (cont.)
(c) 붕괴 전의 연산들
[start-transaction, T1]
[write_item,T1,D,20]
[commit,T1]
[start-transaction,T2]
[write_item,T2,B,10]
[write_item,T2,D,25] 시스템 붕괴
T1 의 [write-item, ...] 연산들은 REDO 된다 .
T2 의 로그 엔트리들은 회복처리가 무시한다 .
RDU_M 알고리즘의 개선
T2
T3
T4
T5
t1 t2 시간
검사점 시스템 붕괴
(checkpoint) (system crash)
• 이 절의 내용
16.3.1 단일 사용자 환경에서 즉시갱신에 기반을 둔 UNDO/REDO
회복 기법
• UNDO(WRITE_OP)
– WRITE_OP 에 대응되는 로그 엔트리 [write_item, T, X, new_value]
를 검사하고 , 데이타베이스의 X 값을 old_value 로 설정한다 .
– 다수의 write_item 연산을 UNDO 할 때에는 로그에 기록된 순서의 역
순으로 UNDO 한다 .
5판Ch16 Fundamentals of Database Systems 22
16.3.2 동시에
16.3.2 동시에 수행되는
수행되는 환경에서
환경에서
즉시갱신의
즉시갱신의 UNDO/REDO
UNDO/REDO
• 동시성 제어 방법에 대한 가정
– 동시성 제어 프로토콜이 엄격한 2 단계 로킹 프로토콜처럼 엄격한 스
케줄을 만들고 교착 상태가 발생할 수 있는 시스템을 가정한다 .
• 트랜잭션 수행 방법
1. 트랜잭션이 시작할 때 : 현재 디렉토리를 그림자 디렉토리로 복사한다 .
2. write_item 연산을 수행할 때 : 수정된 데이타베이스 페이지의 새 사본을 생성
하고 , 현재 디렉토리 엔트리가 새 사본을 가리키도록 수정한다 .
3. 트랜잭션을 완료할 때 : 그림자 디렉토리를 폐기하고 그 그림자 디렉토리가 참
조하는 이전 페이지들을 반환한다 .
• 트랜잭션 복귀 방법
1. 수정된 데이타베이스 페이지를 반환하고 , 현재의 디렉토리를 폐기한다 .
2. 그림자 디렉토리를 현재 디렉토리로 설정한다 .
5판Ch16 Fundamentals of Database Systems 24
16.4 그림자
16.4 그림자 페이지
페이지 기법
기법
• 특징
– 단일 사용자 환경에서 로그가 불필요하다 .
– 다사용자 환경에서는 동시성 제어 기법에 로그가 필요한 경우 회복 기법
에서도 로그가 필요할 수 있다 .
• 예 : System R 은 검사점 , 로깅과 함께 그림자 페이징을 이용
– NO-UNDO/NO-REDO 기법
– 장점
• 트랜잭션 실행 결과의 UNDO 가 간단하다 .
– 단점
• 갱신된 데이타베이스 페이지들의 디스크 상의 위치가 변하기 때문에 클러스
터링이 어렵다 .
• 디렉토리가 큰 경우 오버헤드가 심각하다 .
• 트랜잭션 완료시 쓰레기를 수거해야 하는 문제가 있다 .
페이지 5
( 이전 페이지
현재 디렉토리 그림자 디렉토리
페이지 1
( 갱신한 후 ) ( 갱신되지 않음 )
1 페이지 4 1
2 페이지 2
2
3 ( 이전 페이지 ) 3
4 4
페이지 3
5 5
6 페이지 6 6
페이지 2
( 새 페이지 )
페이지 5
( 새 페이지 )
• REDO 단계
– 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때
까지 REDO 를 수행한다 .
– REDO 된 로그 레코드의 리스트를 관리하여 불 필요한 REDO 연산이
수행되지 않도록 한다 .
• UNDO 단계
– 로그를 역순으로 읽으면서 진행 트랜잭션의 연산을 역순으로 UNDO 한
다.
1 0 T1 update C ......
2 0 T2 update B ......
3 1 T1 commit ......
4 begin checkpoint
5 end checkpoint
6 0 T3 update A ......
7 2 T2 update C ......
8 7 T2 commit ......
T1 3 commit C 1
T2 2 in progress B 2
T1 3 commit C 1
T2 8 commit B 2
T3 6 in progress A 6
• 다중 데이타베이스 트랜잭션
– 여러개의 데이타베이스를 액세스하는 트랜잭션으로 이 때 각각의
DBMS 들은 서로 다른 회복 기법과 트랜잭션 관리자를 사용할 수 있다
.
– 원자성을 유지하기 위하여 2 단계 완료 프로토콜을 사용한다 .
• 모든 참여 데이타베이스가 트랜잭션을 완료하도록 하거나 또는 어느 하나
도 완료하지 않도록 한다 .
• 어떤 참여 데이타베이스에 고장이 발생하더라도 트랜잭션이 완료된 상태
또는 철회된 상태로의 회복은 항상 가능하다 .
참여 데이타베이스
조정자 참여 데이타베이스
참여 데이타베이스
• 백업
– 전체 데이타베이스와 로그를 정기적으로 값싼 기억장치에 복사한다 .
• 시스템 로그는 자주 백업한다 .
– 데이타베이스보다 크기가 작으므로 자주 백업하는 것이 가능하다 .
– 마지막 데이타베이스 백업 이후에 완료된 트랜잭션의 결과를 회복할
때 시스템 로그가 사용된다 .
• 데이타베이스 백업 후에는 시스템 로그를 새로 시작한다 .
– 디스크 실패로부터의 회복 방법
1. 최근 데이타베이스 백업 사본으로 데이타베이스를 디스크에 재구성 한다
.
2. 시스템 로그의 백업 사본에 기록된 완료된 모든 트랜잭션의 연산들의 효
과를 재구성된 데이타베이스에 반영한다 .
회복의 개념 소개
– 로그우선 출력과 검사점
회복 기법들
– 지연갱신을 기반으로 한 회복 기법
– 즉시갱신을 기반으로 한 회복 기법
– 그림자 페이지 기법
상용 기법
– ARIES 회복 알고리즘
다중 데이타베이스에서의 회복
재해로부터의 회복
– 데이타베이스 백업을 기반으로 함