본문 바로가기
모두허브
도구 39개
홈
도구
소개
Google로 로그인
KO
EN
JA
IT 백과사전
IT 백과사전 › 데이터베이스 › 트랜잭션
데이터베이스 회복 기법(Database Recovery)
1. 정의
장애 발생 시 DB를 일관된 상태로 복구하기 위해, 로그 기반 REDO·UNDO를 수행하는 복원 기법
2. REDO(재실행)
장애
로그를 읽는 범위: 맨 처음부터 장애까지 전부
T1
REDO
T2
REDO
T3
대상 아님
T4
REDO
T5
대상 아님
대상
장애 전에 COMMIT까지 끝난 트랜잭션(T1, T2, T4)
방법
로그에 적힌 바꾼 뒤 값(new value)을 앞에서부터 다시 쓴다
지키는 성질
지속성(Durability): COMMIT된 결과는 장애가 나도 사라지지 않는다
3. UNDO(취소)
장애
로그를 읽는 범위: 맨 처음부터 장애까지 전부
T1
대상 아님
T2
대상 아님
T3
UNDO
T4
대상 아님
T5
UNDO
대상
장애 때 아직 실행 중이던 트랜잭션(T3, T5)
방법
로그에 적힌 바꾸기 전 값(old value)을 뒤에서부터 다시 써서 되돌린다
지키는 성질
원자성(Atomicity): 하다 만 변경은 데이터베이스에 남지 않는다
4. 로그 기반 회복 기법
즉시 갱신
지연 갱신
장애
로그를 읽는 범위: 맨 처음부터 장애까지 전부
T1
REDO
T2
REDO
T3
UNDO
T4
REDO
T5
UNDO
DB 파일에 쓰는 시점
COMMIT 전에도 쓸 수 있다
장애 뒤 할 일
COMMIT한 T1, T2, T4는 REDO, 실행 중이던 T3, T5는 UNDO한다
5. 체크포인트 회복 기법
즉시 갱신
지연 갱신
체크포인트
장애
로그를 읽는 범위: 체크포인트부터 장애까지
T1
건너뜀
T2
REDO
T3
UNDO
T4
REDO
T5
UNDO
체크포인트
바뀐 내용을 DB 파일에 모두 쓴 뒤 그때 실행 중인 트랜잭션 목록과 함께 남기는 표시
장애 뒤 할 일
체크포인트 전에 끝난 T1은 건너뛰고 T2, T4는 REDO, T3, T5는 UNDO한다
점선 범위
UNDO할 T3가 체크포인트 전에 시작해서 로그를 T3 시작 기록까지 거슬러 읽는다