CS 스터디

[데이터베이스] 데이터베이스 회복 기법

수방방 2024. 7. 10. 23:27

📍 데이터베이스 회복 기법이란?

  • 데이터베이스 회복 기법은 시스템 오류, 하드웨어 장애, 소프트웨어 버그, 또는 기타 예기치 않은 문제로 인해 데이터베이스가 손상되었을 때, 데이터베이스를 일관된 상태로 복구하는 일련의 절차와 기술입니다.
  • 즉, 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업을 말합니다.

 

📍 REDO 와 UNDO 란?

  Redo Undo
정의 커밋된 트랜잭션의 변경 사항을 재적용하는 연산 커밋되지 않은 트랜잭션의 변경 사항을 되돌리는 연산
사용 시기 시스템 장애 발생 후 복구 시 트랜잭션 실패 또는 시스템 장애 발생 후 복구 시
주요 기능 데이터베이스에 반영된 커밋된 변경 사항을 복구 데이터베이스에 반영된 커밋되지 않은 변경 사항을 원래 상태로 복원
작업 방향 Forward Recovery: 장애 시점 이후로 복구 Backward Recovery: 장애 시점 이전으로 복구
주요 원칙 트랜잭션 커밋 전 로그 기록 트랜잭션 시작 전 로그 기록
로그 내용 커밋된 트랜잭션의 변경 사항 커밋되지 않은 트랜잭션의 변경 사항

 

 

📍 주요 데이터베이스 회복 기법

  1. 로그 기반 회복 기법
    • 로그 기반 회복 기법은 데이터베이스 트랜잭션에 대한 모든 변경 사항을 로그에 기록하는 방식입니다.
    • 로그를 사용하면 장애 발생 시 로그를 재생하여 데이터베이스를 복구할 수 있습니다.
    • 즉시 갱신 회복 기법
      • 트랜잭션 수행 중에 데이터를 변경한 연산의 결과를 데이터베이스에 즉시 반영하는 방식입니다.
      • 이 기법에서는 트랜잭션이 아직 커밋되지 않은 상태에서도 데이터베이스가 변경될 수 있습니다.
      • 따라서 장애가 발생하면, 로그 파일을 참조하여 REDO와 UNDO 연산을 모두 실행해야 합니다.
    • 지연 갱신 회복 기법
      • 트랜잭션이 수행되는 동안에는 데이터 변경 연산의 결과를 데이터베이스에 즉시 반영하지 않고 로그 파일에만 기록해두는 방식입니다.
      • 트랜잭션이 부분 완료(commit) 된 후에 로그에 기록된 내용을 이용해 데이터베이스에 한 번에 반영합니다.
      • 따라서 이 기법에서는 장애가 발생해도 UNDO 연산을 수행할 필요없이 REDO 연산만 실행하면 됩니다.
  2. 체크포인트 회복 기법
    • 체크포인트 회복 기법은 로그 회복 기법과 같은 방법으로 로그 기록을 이용하되, 일정 시간 간격으로 검사 시점(Check Point)을 만들어둡니다.
    • 이를 통해 장애가 발생했을 때, 복구 작업은 가장 최근의 체크포인트 이후에 발생한 트랜잭션에 대해서만 수행됩니다.
    • t4: 체크포인트 이전에 실행되었던 것은 이미 디스크에 반영, 체크포인트 이후의 내용이 장애 발생 전에 종료되었으므로 REDO 대상
    • t5: 체크포인트 이후에 실행되었고 장애 발생 전에 종료되었으므로 REDO 대상
    • t6: 체크포인트 이후에 실행되었고 장애 발생 시점에 실행중이였으므로 UNDO 대상

출처: https://itpenote.tistory.com/628

3. 그림자 페이징 회복 기법

  • 트랜잭션이 실행될 때 데이터 페이지의 복사본을 만들어 트랜잭션이 완료될 때까지 원래 페이지를 보존하는 방식입니다.
  • 트랜잭션이 성공적으로 완료되면 복사본이 실제 데이터 페이지로 교체되고, 트랜잭션이 실패하면 복사본을 폐기하여 원래 상태를 유지합니다.
  • 그림자 페이지를 사용하여 트랜잭션 중간의 불완전한 변경 사항이 데이터베이스에 반영되지 않도록 보장합니다.
  • 다른 회복 기법과 달리, 그림자 페이징 기법은 로그를 유지할 필요가 없습니다.

 

📍 데이터베이스 회복 기법 비교

구분 즉시 갱신 회복 기법 지연 갱신 회복 기법 체크포인트 회복 기법 그림자 페이징 회복 기법
복구 과정 UNDO, REDO 사용 REDO 사용 UNDO, REDO 사용 페이징 테이블 교체
복구 속도 로그 검색 수행으로 느림 단순한 로그 재생으로 빠름 제한된 검사점만을 검색하여 로그 대비 빠름 단순한 페이징 테이블 교체로 빠름
복구 데이터 트랜잭션 로그 트랜잭션 로그 검사점 시점 로그 분산된 그림자 테이블
확장성 모든 로그 검색으로 비용이 큼 트랜잭션 로그 재생만으로 용이 검사점 변경만으로 용이 페이징 테이블 유지 알고리즘이 복잡