새소식

반응형
밥벌이/데이터베이스

데이터베이스 회복의 개요

  • -
반응형
  • 장애의 개념 및 종류
    • 장애의 개념
      시스템의 내적 또는 외적 문제로 시스템이 정상적으로 동작할 수 없는 상태를 의미
    • 장애의 종류
      • 실행 장애(Action Failure)
        사용자의 실수, 무결성 규정 위반 등으로 인해 질의 실행이 실패하는 경우
      • 트랜잭션 장애(Transaction Failure)
        입력 데이터 오류, 시스템 자원 요구의 과다, 데드락 발생으로 활성 트랜잭션의 강제 종료 등으로 인해 트랜잭션 실행이 실패하는 경우
      • 시스템 장애(System Failure)
        소프트웨어(운영체제나 DBMS 등) 오류, 하드웨어 오동작, 정전 등으로 인해 시스템이 동작하지 않게 되는 경우로, 데이터베이스는 손상되지 않음
      • 미디어 장애(Media Failure)
        저장 장치인 디스크 블록의 손상이나 디스크 헤드의 충돌 등에 의해 데이터베이스의 일부 또는 전부가 물리적으로 손상되는 경우
         
  • 데이터베이스 회복
    • 트랜잭션들을 실행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업
    • 상황에 따라 트랜잭션을 재수행(Redo)하거나 취소(Undo)시키게 됨
    • 덤프(Dump) 및 로그(Log) 파일 등을 이용
      • 장애가 일어나기 전에 데이터베이스에 내용을 주기적으로 덤프 파일에 보관
      • 덤프 이후의 데이터베이스에 대한 변동 사항은 로그 파일에 기록
    • 로그-기반 회복과 그림자 페이징 회복이 있음
         
  • 로그-기반 회복 관리기
    • 로그
      • 안정된(Stable) 저장 장치에 저장됨
      • 로그 레코드들의 연속(Sequence)으로 데이터베이스에 대한 변경 활동의 기록을 유지
    • 로그 기록 과정
      • 트랜잭션 Ti가 시작하면 <Ti, start> 로그 레코드가 로그에 기록
      • 트랜잭션 Ti가 write(X)를 실행하기 전에 <Ti, X, 이전 값, 이후 값> 로그 레코드가 로그에 기록(Write-Ahead Logging(WAL) 규칙)
      • 트랜잭션 Ti가 마지막 문을 실행하면 <Ti, commit> 로그 레코드가 로그에 기록
      • 로그 레코드는 버퍼링 하지 않고 직접 안정된 저장 장치의 로그에 기록
    • 데이터 베이스 회복의 전략
      • 회복을 위한 중복 저장 유형
구분 내용
덤프
  • 주기적으로 데이터베이스전체 또는 일부 내용을 별도의 저장 장치(즉, 디스크나 테이프)에 저장하는 것
  • 기간(시간별, 일별, 주별)
로그
  • 데이터베이스의 내용이 변경될 때마다 변경 내용을 로그 파일에 저장하는 것
  • 장애 발생 시 로그 파일의 변경 전후의 내용을 이용하여 복구하는데, 로그 파일에 대한 백업이 필요
  • 회복을 위한 조치 유형
구분 내용
REDO
  • 장애 발생 시 로그로 부터 정보를 읽어 데이터베이스에 실제로 반영하는 작업을 수행
  • 트랜잭션 Commit 이후의 상태로 회복
UNDO
  • 장애 발생 시 로그를 이용해 모든 변경을 취소하여 원래의 데이터베이스 상태로 복구
  • 트랜잭션 수행 이전 상태로 회복
  • 회복 관리기의 개념
    • 회복 관리기는 로그, 메모리 덤프 등을 이용하여 회복 기능을 수행하는데, 로그는 일반적으로 REDO와 UNDO를 위해 <트랜잭션 id, 데이터 아이템, 이전 값, 이후 값> 형식을 가짐
    • 회복 관리기는 트랜잭션 실행이 성공적으로 완료되지 못하면 로그를 이용하여 트랜잭션이 데이터베이스에 수행하였던 모든 변경을 취소(Undo)시켜, 트랜잭션 실행 이전의 원래 상태로 되돌리는 역할을 담당
    • 트랜잭션의 실행이 성공적으로 종료되어 로그에는 기록되었지만 디스크에는 반영되지 않았을 경우 회복 시에 로그를 이용하여 재작업(Redo)을 수행
반응형

'밥벌이 > 데이터베이스' 카테고리의 다른 글

튜닝의 종류  (0) 2011.03.11
성능 평가(Benchmarks)  (0) 2011.03.11
데이터베이스 회복기법  (0) 2011.03.10
트랜잭션 관리  (0) 2011.03.01
동시성(병행) 제어  (0) 2011.03.01
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.