Ⅰ. 복구(Recovery)의 기법의 개요
가. 복구기법의 정의
- 트랜잭션을 동시에 수행할 때 트랜잭션의 원자성(automicity)과 연속성(durability)을 보장
하기 위해 컴퓨터 시스템의 여러 가지 고장에 대비하는 기법
- 시스템에 고장이 발생하면 회복 관라자는 로그 파일에서 필요한 정보를 얻어 데이터베이스를
고장 바로 전의 일관성 있는 상태로 변경
- 데이터베이스 운영 중 예기치 못한 장애 (Failure) 가 발생한 경우, 데이터베이스를 장애
발생 이전의 일관된 상태 (Consistent State) 로 복원시키는 것을 말함
나. 장애(Failure)의 유형
다. 데이터 베이스 회복을 위한 주요요소
Ⅱ. 로그기반 (Log-based) 회복기법
가. DB 로그
- DB 변경에 대한 기록으로 가장 많이 사용되는 구조임.
- 로그를 구성하는 레코드는 트랜잭션 이름, 데이터 아이템 이름, 변경 전의 데이터 아이템
값, 변경후의 데이터 아이템 값을 표현하는 필드로 구성됨.
- 이러한 로그 레코드들은 다음과 같은 유형으로 구분됨.
나. 즉시갱신(immediate update)과 지연갱신 (Deferred update) 회복기법
다. 지연갱신 및 즉시갱신 회복기법의 문제점
- 로그파일의 정보를 모두 검사하여 Redo 연산을 하므로 시간이 많이 걸리고,
- Redo 연산을 할 필요가 없는 트랜잭션까지도 연산을 수행해야 하는 결과를 초래할 수 있음
Ⅲ. 검사점 (Checkpoint) 회복기법
가. 검사점 (Checkpoint) 을 로그파일에 기록으로써, 장애 발생 시에 검사시점 이전에
처리된 트랜잭션은 회복 작업에서 제외하고,
나. 검사점 이후에 처리된 트랜잭션에 대해서만 회복 작업을 수행하는 회복기법임.
다. 검사점 (Checkpoint) 회복기법의 사례
라. 검사시점 기록 플로우
- 트랜잭션의 실행을 일시적으로 중지시킨다.
- 완료된 트랜잭션들의 모든 쓰기 연산들의 결과를 주기역장치 버퍼에서 디스크로
기록한다
- checkpoint레코드를 로그에 기록하고 그 로그를 디스크에 기록한다.
- 트랜잭션의 실행을 재개한다.
마. 장애시 복구
- checkpoint이전의 트랜잭션에 대해서는 회복작업이 필요 없음
- 로그에 있는 가장 최근 레코드 이후의 로그를 이용하여 데이터를 복구
마. 검사점 사용 효과
- checkpoint는 인스턴스 복구에 필요한 시간을 단축
- 부분 복귀(Partial rollback)가 가능하여 컴퓨터의 자원을 효율적으로 사용할 수 있음
Ⅳ. 그림자 페이징 (Shadow paging) 회복기법
가. 그림자 페이징의 개념
- 로그파일을 사용하지 않음.
- 두 개의 페이지 테이블 (현재 페이지 테이블, 그림자 페이지 테이블) 을 이용함.
- 현재 페이지 테이블은 주기억장치에 저장, 그림자 페이지 테이블은 하드디스크에 (비휘발성)
저장함.
나. 그림자 페이징의 처리 순서
- 트랜잭션이 시작되면 현재 및 그림자 페이지 양쪽에 내용을 생성함.
- 트랜잭션 중간의 경우는 현재 페이지 테이블에만 저장함.
- 트랜잭션 성공시,현재 페이지 테이블 (주기억장치) 내용을 그림자 페이지 테이블 (하드디스크)
에 저장함.
다. 그림자 페이징 회복기법의 특징
- 로그파일을 부가적으로 유지할 필요가 없어 처리속도가 빠름.
- 데이터베이스 페이지의 변경 시마다 물리적인 위치를 변경해 주어야 하므로 데이터 단편화
(Data Fragmentation) 현상이 발생할 수 있음.
V. 장애유형별 DB 백업 및 복구방안
가. 트랜잭션 장애시 복구방안
- DBMS 에 의해 자동으로 복구됨.
나. 시스템 장애시 복구방안
- 기본적으로 DBMS 에 의해 자동으로 복구됨.
- High Availability 를 위해서는 추가적으로 Clustered Database Architecture 를 구성함.
다. 미디어 장애시 복구방안
- 일차적으로 미디어 장애 예방을 위해 RAID 구성(예: RAID 1+0)을 권고함.
- 주기적으로 백업을 실시하여야 하며, 백업본을 이용한 미디어 복구 시간을 미리 측정.
- 미디어 장애 복구 작업 지침을 만들어 실제 미디어 장애 발생시 적절한 작업이
이루어지도록 관리자 인력을 훈련시켜야 함.
라. 사이트 장애시 복구방안
- 최근 DBMS 제품들은 replication 또는 log shipping 등의 기술을 이용하여 지역적으로
멀리 떨어져 있는 site 에 standby 데이터베이스를 구성함.
- 이때 primary site 에 홍수, 지진 등의 장애가 발생하면 standby 데이터베이스를 이용하여
서비스를 계속 진행시키게 됨.