1. 데이터베이스 장애와 복구 개념
1) 데이터복구(Data Recovery)의 정의
- 데이터베이스 장애가 발생할 경우 데이터베이스를 장애 발생 이전으로 일관성과 무결성을 복원하는 것
2) 데이터베이스 장애(실패) 유형
- 트렌젝션 장애 : 논리적 오류, 시스템 오류(Deadlock 등)
- 시스템 장애 : 전원, 하드웨어, 소프트웨어 등
- 디스크 장애 : 디스크 스토리지 고장
- 사용자 장애 : DBA 작업등의 사용자 실수
3) 데이터베이스 복구의 기본원리
- 아카이브, 덤프 : 데이터베이스를 다른 저장 장치에 복사 저장
- 로그, 저널 : 데이터베이스가 변경될 때마다 별도 파일에 기록
4) 데이터베이스 복구조치 유형
유형 | 특징 | 설명 |
REDO (재수행) | 아카이브 사본 + 로그 => 완료 후 상태 | - 아카이브 복원 후, 로그를 통한 백업시점 이후의 트렌젝션 재실행 복원 - 완료(Commit)된 트렌젝션만 해당 - 쓰기 연산의 재실행 (Forward Recovery) |
UNDO (취소) | 로그 + 후방향 취소연산 => 시작 상태 | - 로그를 통한 트렌젝션 취소로 복원 - 장애 발생 이후의 트렌젝션 취소 - 쓰기 연산의 취소 (Backward Recovery) |
2. 데이터베이스 장애 복구 방법
1) 데이터베이스 복구 기법
구분 | 로그 기반 기법 | 검사점 복구 기법 | 그림자 페이징 기법 |
개념 | 로그파일을 이용한 복고 | 검사점과 로그파일을 이용한 복구 | 그림자 페이지 테이블을 이용한 복구 |
특징 | 로그 전체를 조사하여 REDO, UNDO | 로그보다 빠른 복구 속도 | 그림자 페이지 테이블 기록의 부하 멀티 트렌젝션환경에 부적합 |
복구과정 | REDO, UNDO 사용 | UNDO 사용 | 그림자 테이블 교체 |
복구속도 | 느림 | 로그보다 빠름 | 매우 빠름 |
2) 분산 데이터베이스에서의 복구(회복)와 2단계 완료 프로토콜
(1) 분산 데이터베이스 트렌젝션
- 여러 사이트에 걸쳐 동작하는 트렌젝션
- DBMS간 다른 회복 기법과 트렌젝션 관리자를 사용할 수 있음
- 분산 데이터베이스 트렌젝션은 원자성을 위해 2단계 완료 프로토콜 사용
(2) 2단계 완료 프로토콜 (2 Phase Commit Protocol)
- 분산 데이터베이스 트렌젝션의 원자성 유지를 위한 대표 트렌젝션 완료 규약
- 1단계 : 트렌젝션 조정자 C는 A와 B 데이터베이스에 트렌잭션 완료 준비를 묻는 메세지를 보내고, A와 B는 완료줌비 또는 완료 불가 응답을 회신
- 2단계 : 모든 참여 데이터베이스가 "완료 준비"되었으면 조정자는 "완료(Commit)" 신호를 보내거나, 하나 이상의 참여 데이터베이스가 "완료 불가" 신호를 보내면 조정자는 "철회(Abort)" 신호를 보냄
3. 데이터베이스 백업
1) 데이터베이스 백업 개요
(1) 데이터베이스 백업 정의
- 장애시 데이터베이스 복구를 위해 데이터베이스의 전체 또는 일부를 중복시켜 보관하는 작업
(2) 백업의 목적
- 데이터 유실 방지, 비지니스 연속성 확보
2) 데이터베이스 백업의 요구사항 및 주요 작업사항
(1) 데이터베이스 백업 요구사항
항목 | 요구사항 |
업무적 요구사항 | Mean-Time-To-Recovery (MTTR) Mean-Time-Between-Failures (MTBF) |
운영 요구사항 | 서비스 운영 요건 (예 : 24/365) 테스트와 검증차원 백업 요건 |
기술적 요구사항 | OS 물리적 이미지 copy 데이터베이스 백업 수준 (object, schema, data) 백업 주기 산정 |
재난복구 요구사항 | 재해, 재난에 대한 비지니스 영향도 분석 |
(2) 데이터베이스 백업관리 내용
항목 | 내용 | 예시 |
백업정책 | - 백업주기, 소산정책 등 - 백업 전략, 기술, 정비 등을 기술 |
Daily : DB Archive Weekly : OS/User Data Full Backup : DB/AP |
백업구성 | 기술적 백업 아키텍쳐 구성 | 디스크, 테이프, VTI, LAN, SAN 등 |
백업수행 및 이력관리 | 백업수행 결과 Log 기록 및 분석 | |
백업용량산정 | 백업 데이터의 양 산정 | 통상 원본크기의 2~6배 산정 |
3) 데이터 베이스 백업 방식의 종류와 특징
분류 기준 | 백업방식 | 설명 | 장/단범 |
서비스 중단 여부 |
오프라인 백업 (Cold Backup) |
DB를 정지하고 백업 받는 방식 | 백업수행중 서비스 중단 |
온라인 백업 (Hot Backup) |
DB를 운영하면서 백업 받는 방식 | - 서비스 지속 - CPU/메모리 사용 증가 |
|
백업 범위 | 전체 백업 (Full Backup) |
데이터베이스 전체를 백업 | 긴 수행시간, 데이터 중복 |
차등 백업 (Differential Backup) |
직전 전체백업 이후의 변경 데이터 백업 | - 백업 용량 및 시간 축소 - 복구시간 단축 |
|
증분 백업 (Incremental Backup) |
직전 증분백업 이후의 변경 데이터 백업 | - 백업 용량 및 시간 축소 (차등 > 증분) - 복구시 전체백업과 이후 증분백업들을 적용 - 증분 백업 데이터중 문제 발생시 복구 실패 |
|
아카이브 로그 백업 (Archive Log Backup)) |
트렌젝션의 수행내용 기록 | - 특정 복구 시점 복원 가능 - 데이터 손실 최소화 - 트렌젝션의 백업 - 데이터 백업본 필요 |
'TOPCIT > TOPCIT교재' 카테고리의 다른 글
1. 시스템 개념 - 황선환 (0) | 2022.08.01 |
---|---|
XIII. 데이터베이스 분석 이해 - 이상희 (0) | 2022.07.27 |
빅데이터 및 NoSQL에 대한 이해 - 황선환 (0) | 2022.07.27 |
VII. 데이터베이스 품질과 표준화 - 안혜진 (0) | 2022.07.26 |
III. 데이터베이스 설계 및 구축절차 - 문경숙 (0) | 2022.07.26 |