[DB] 데이터베이스 회복

·2025년 1월 26일

데이터베이스

목록 보기
22/22
post-thumbnail

데이터베이스 회복


데이터베이스 회복이란?

  • 데이터베이스 회복(Recovery)이란 시스템 장애나 오류로 인해 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업

데이터베이스 장애 유형

트랜잭션 장애

  • 트랜잭션 내부에서 입력 데이터 오류, 특정 조건 불충족, 논리 오류 등으로 인해 트랜잭션이 비상적으로 종료되는 경우

시스템 장애

  • 하드웨어 고장, 운영체제 오류, DBMS 오류등으로 인해 실행중인 트랜잭션 정보가 손실되는 경우 (더 이상 실행할 수 없음)

미디어 장애

  • 저장 장치인 디스크 손상으로 인해 데이터베이스가 물리적으로 손상되는 경우

데이터베이스 회복 조치 유형

UNDO

  • 트랜잭션 로그를 이용하여 트랜잭션이 정상적으로 수행되지 않았을때 모든 변경을 취소하여 복구 수행
  • 트랜잭션의 시작을 나타내는 ‘start’는 있지만 완료를 나타내는 ‘commit’ 기록이 없는 트랜잭션들이 작업한 변경 내용들을 모두 취소하는 작업

REDO

  • 트랜잭션 로그를 이용하여 트랜잭션이 정상적으로 수행되지 않았을때 트랜잭션을 재실행하여 복구 수행
  • 트랜잭션의 시작 ‘start’와 완료 ‘commit’ 에 대한 기록이 있는 트랜잭션들의 작업을 다시 하는 작업

데이터베이스 회복 기법 종류

로그 기반 회복 기법

지연갱신 회복 기법

  • 트랜잭션이 완전히 완료(Commit)될 때까지 실제 데이터베이스에는 변경 사항을 적용하지 않고, 로그에만 기록하는 방식
  • UNDO는 필요없고, REDO만 필요
  • 트랜잭션이 완료되기 전에 장애가 발생하면 -> 로그 내용을 무시하고 버림
  • 트랜잭션이 완료된 후에 장애가 발생하면 -> REDO 연산

즉시갱신 회복 기법

  • 트랜잭션이 수행되는 도중에도 즉시 데이터베이스에 반영하는 방식
  • 장애가 발생하면 로그 파일에 기록된 내용을 참조하여, REDO, UNDO 연산을 하여 복구
  • 트랜잭션이 완료되기 전에 장애가 발생하면 -> UNDO 연산
  • 트랜잭션이 완료된 후에 장애가 발생하면 -> REDO 연산

검사점(CheckPoint) 회복 기법

  • 시스템 장애가 발생하였을 경우, Redo와 Undo를 수행하기 위해 로그 전체를 조사해야 하는 경우를 피하기 위한 방법
  • 검사점 기법은 트랜잭션 실행중 주기적으로 변경 내용이나 시스템 상황 등에 관한 정보와 함께 체크포인트를 로그에 보관
  • 장애 발생 시 로그 전체를 조사하지 않고 로그 내에서 가장 최근의 검사점으로부터 회복 작업을 수행하여 회복 시간을 단축시킬 수 있음

미디어 회복 기법

  • 디스크에 발생할 수 있는 장애 시 백업 및 로그 파일을 이용하여 데이터베이스를 복구
  • 장애 발생 이전의 백업 데이터를 복원하고, 이후의 REDO 로그를 실행하여 최신 상태로 업데이트

0개의 댓글