데이터베이스 회복
데이터베이스 회복의 개요
데이터베이스 회복의 정의
데이터베이스 장애 발생 후 데이터베이스를 장애발생 이전의 일관된 상태로 복원 시키는 행위
데이터베이스 회복의 목적
- 장애투명성: 데이터 일관성 및 무결성 유지
- 트랜잭션의 원자성 보장: All or Nothing (전체 처리 또는 모두 취소)
데이터베이스 회복의 종류
분류 | 회복기법 | 상세 설명 |
---|---|---|
Log 기반 | 지연갱신 회복기법 | 트랜잭션이 부분 완료 상태에 이르기까지 발생한 모든 변경 내용을 로그 파일에만 저장하고, 데이터베이스에는 Commit이 발생할 때까지 저장을 지연하는 기법 |
즉시갱신 회복기법 | 트랜잭션 수행 도중 데이터를 변경하면 변경 정보를 로그 파일에 저장하고, 트랜잭션이 부분 완료되기 전이라도 모든 변경 내용을 즉시 데이터베이스에 반영하는 기법 | |
체크포인트 회복기법 | 데이터베이스의 로그정보와 검사점(체크포인트)을 이용, 검사점 이후 처리된 내용에 대해서만 회복작업을 수행하여 장애발생 이전의 일관된 상태로 복원시키는 회복기법 | |
비 Log 기반 | 쉐도우 페이징 회복기법 | 트랜잭션이 실행되는 동안 2개의 페이지 테이블(즉, 현재 페이지 테이블과 그림자 페이지 테이블)을 유지 및 관리하는 회복기법 |
미디어 회복기법 | 디스크와 같은 비휘발성 저장 장치의 내용이 손상되는 장애 발생시 회복을 위한 기법 |
지연갱신 회복기법
- 트랜잭션이 부분완료 상태에 이르기까지 발생한 모든 내용을 Log 파일에 저장하고 DB에는 지연저장
- Undo는 사용하지 않음, 트랜잭션 철회 시 파일 내용만 폐기
즉시갱신 회복기법
- 트랜잭션 수행 도중 발생하는 모든 변경을 즉시 DB에 반영하고 갱신정보는 Log File에 저장
- 회복 시 Undo/Redo 모두 사용
체크포인트 회복기법
- 변경내용을 Log File에 기록하고 일정 기간 단위로 검사시점을 생성하여 검사 수행
- Log 기반 회복기법의 문제점 해결 위함
쉐도우 페이징 회복기법
- 변경된 현재 페이지 테이블을 폐기
- 그림자 페이지 테이블을 현재 페이지 테이블로 설정(페이지 교체)
미디어 회복기법
- 데이터베이스의 전체 내용을 안전한 저장소에 복사(덤프)하므로 대량의 데이터 전송 필요
- 데이터 전송 도중 트랜잭션 중지로 CPU 낭비가 발생할 수 있음