데이터베이스 회복

데이터베이스 회복의 개요

데이터베이스 회복의 정의

데이터베이스 장애 발생 후 데이터베이스를 장애발생 이전의 일관된 상태로 복원 시키는 행위

데이터베이스 회복의 목적

  • 장애투명성: 데이터 일관성 및 무결성 유지
  • 트랜잭션의 원자성 보장: All or Nothing (전체 처리 또는 모두 취소)

데이터베이스 회복의 종류

분류 회복기법 상세 설명
Log 기반 지연갱신 회복기법 트랜잭션이 부분 완료 상태에 이르기까지 발생한 모든 변경 내용을 로그 파일에만 저장하고, 데이터베이스에는 Commit이 발생할 때까지 저장을 지연하는 기법
  즉시갱신 회복기법 트랜잭션 수행 도중 데이터를 변경하면 변경 정보를 로그 파일에 저장하고, 트랜잭션이 부분 완료되기 전이라도 모든 변경 내용을 즉시 데이터베이스에 반영하는 기법
  체크포인트 회복기법 데이터베이스의 로그정보와 검사점(체크포인트)을 이용, 검사점 이후 처리된 내용에 대해서만 회복작업을 수행하여 장애발생 이전의 일관된 상태로 복원시키는 회복기법
비 Log 기반 쉐도우 페이징 회복기법 트랜잭션이 실행되는 동안 2개의 페이지 테이블(즉, 현재 페이지 테이블과 그림자 페이지 테이블)을 유지 및 관리하는 회복기법
  미디어 회복기법 디스크와 같은 비휘발성 저장 장치의 내용이 손상되는 장애 발생시 회복을 위한 기법

지연갱신 회복기법

  • 트랜잭션이 부분완료 상태에 이르기까지 발생한 모든 내용을 Log 파일에 저장하고 DB에는 지연저장
  • Undo는 사용하지 않음, 트랜잭션 철회 시 파일 내용만 폐기

즉시갱신 회복기법

  • 트랜잭션 수행 도중 발생하는 모든 변경을 즉시 DB에 반영하고 갱신정보는 Log File에 저장
  • 회복 시 Undo/Redo 모두 사용

체크포인트 회복기법

  • 변경내용을 Log File에 기록하고 일정 기간 단위로 검사시점을 생성하여 검사 수행
  • Log 기반 회복기법의 문제점 해결 위함

쉐도우 페이징 회복기법

  • 변경된 현재 페이지 테이블을 폐기
  • 그림자 페이지 테이블을 현재 페이지 테이블로 설정(페이지 교체)

미디어 회복기법

  • 데이터베이스의 전체 내용을 안전한 저장소에 복사(덤프)하므로 대량의 데이터 전송 필요
  • 데이터 전송 도중 트랜잭션 중지로 CPU 낭비가 발생할 수 있음