회복 기법
✒️ 2025-05-28 16:00 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용 일부를 참고하여 정리
트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
- 데이터베이스의 영속성(Commit된 데이터 영구보존)을 위한 기법이다.
1. 로그 기반 회복 기법
- 트랜잭션이 수행한 모든 변경 내역을 기록한 파일을 사용하여 복구하는 기법이다.
- 참고 자료 : Geeks for geeks Log based Recovery in DBMS
- REDO : DB가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 Commit에 대한 기록이 있는 트랜잭션들의 작업을 재작업한다.
- UNDO : DB가 비정상적으로 종료되었을 때, 디스크에 저장된 로그를 분석하여 트랜잭션의 시작은 있으나 Commit 기록이 없는 트랜잭션들이 작업한 변경 내용을 모두 취소한다.
-
지연 갱신 회복 기법(Deferred Update) : 트랜잭션이 완료되기 전까지 DB에 기록하지 않는 기법이다.
- 시스템 장애 시 Commit된 트랜잭션만 REDO하며, UNDO는 하지 않는다.
-
즉각 갱신 회복 기법(Immediate Update) : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법이다.
- 시스템 장애 시 Commit된 트랜잭션은 REDO하며, Commit되지 않은 트랜잭션은 UNDO한다.
| 항목 | Deffered Update | Immediate Update |
|---|---|---|
| DB 갱신 시점 | Commit 후 | 명령 실행 즉시 |
| UNDO 필요 여부 | ❌ | ✔️ |
| REDO 필요 여부 | ✔️ | ✔️ |
2. 체크 포인트 회복 기법
- 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 기법이다.
3. 그림자 페이징 회복 기법
- 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법이다.