정보처리기사/데이터베이스 활용

회복기법 정리

glorypang 2025. 10. 14. 18:12
728x90
반응형
SMALL

1) 즉시 갱신 기법 (Immediate Update)

  • 개념: 트랜잭션이 실행 도중 변경 내용을 즉시 DB에 반영.
  • 로그: 모든 변경(이전값/이후값)을 로그에 기록.
  • 회복: Redo + Undo 모두 수행
    • 장애 시점 전에 끝난(커밋된) 트랜잭션 → Redo
    • 장애 시점에 미완료(미커밋) 트랜잭션 → Undo
  • 장점: 커밋 지연 없음, 빠른 가시성
  • 단점: Undo 필요 → 복잡도↑, 동시성/락 정책 주의

2) 지연 갱신 기법 (Deferred Update)

  • 개념: 트랜잭션이 부분완료/커밋될 때까지 DB에 반영 지연. 커밋 시점에 모아서 반영.
  • 로그: 변경 내역을 로그에만 누적하다가 커밋 시 반영.
  • 회복: Redo만 수행 (Undo 불필요: 미커밋은 반영 자체가 안 됨)
    • 장애 시점 전에 끝난(커밋된) 트랜잭션 → Redo
    • 장애 시점에 미완료 트랜잭션 → 무시
  • 장점: Undo 불필요 → 단순, 안전
  • 단점: 커밋 전까지 결과 미가시, 커밋 지연 시 지연 시간 발생

3) 검사 시점 기법 (Check Pointing)

  • 개념: 실행 중 검사 시점(Check Point) 을 주기적으로 기록. 그 시점까지의 완료분을 DB와 로그에 동기화.
  • 목적: 회복 시 스캔 범위를 체크포인트 이후로 축소 → 복구 시간 단축.
  • 회복:
    1. 최근 체크포인트를 찾음
    2. 이후 로그만 스캔 → 커밋된 트랜잭션 Redo, 미커밋 Undo
  • 장점: 복구시간 대폭 감소
  • 단점: 체크포인트 수행 시 일시적인 I/O 부하

4) 그림자 페이징 (Shadow Paging)

  • 개념: 로그 없이 페이지 단위 복사본(그림자 페이지) 유지
    • 변경은 현재(원본) 페이지에만 적용,
    • 커밋 시 페이지 맵을 새 버전으로 스위치
    • 장애 시 그림자 페이지로 복구(원자적 스위치)
  • 회복: 로그 미사용, 스위칭으로 원자성 보장
  • 장점: 로그 관리 불필요, 간결
  • 단점: 페이지 복사/맵 관리 비용, 프래그멘테이션 문제, 대규모 업데이트 비효율

Redo / Undo 요약표

기법  커밋된 트랜잭션 미커밋 트랜잭션
즉시 갱신 Redo Undo
지연 갱신 Redo 무시
검사 시점 Redo(체크포인트 이후만) Undo(체크포인트 이후만)
그림자 페이징 페이지 맵 스위치로 반영 그림자 페이지로 롤백

 

728x90
반응형
LIST