1. 개요: 데이터베이스 복구란?
데이터베이스 복구는 시스템 장애, 트랜잭션 오류, 저장소 손상 등으로부터 데이터의 일관성과 무결성을 회복하는 절차를 의미합니다.
정상적인 상태로 복원하여 서비스 연속성을 확보하는 것이 궁극적 목적입니다.
2. 복구의 3대 원칙
① 원자성(Atomicity)
- 트랜잭션은 모두 완료되거나 전혀 실행되지 않아야 함
- 실패한 트랜잭션은 롤백(Rollback)으로 복구
② 일관성(Consistency)
- 장애 이후에도 DB는 정합성 제약을 만족해야 함
③ 지속성(Durability)
- 커밋된 트랜잭션의 결과는 장애 후에도 유지되어야 함
3. 복구 유형 분류
(1) 장애 유형 기준
장애 유형 | 설명 | 예시 |
---|
트랜잭션 장애 | 논리적 오류 | SQL 오류, 애플리케이션 버그 |
시스템 장애 | 메모리 손실, 서버 다운 | 전원 장애, OS crash |
미디어 장애 | 저장장치 물리 손상 | 디스크 불량, RAID 실패 |
4. 복구 기법
(1) 로그 기반 복구 (Write-Ahead Logging, WAL)
- REDO / UNDO 로그를 활용하여 복구
- 트랜잭션 수행 시 로그를 먼저 기록 → 장애 발생 시 로그 분석으로 복구
로그 타입 | 설명 |
---|
UNDO | 미완료 트랜잭션 → 원래 상태로 되돌림 |
REDO | 완료된 트랜잭션 → 작업 재반영 |
(2) 체크포인트(Checkpoint) 기법
- DB 상태 스냅샷을 주기적으로 저장
- 장애 시 최근 체크포인트 이후의 로그만 적용
(3) Shadow Paging
- 기존 페이지는 보존하고, 수정된 페이지를 새 위치에 저장
- 커밋 시 교체 → 원본 손상 방지
(4) 백업 기반 복구
- 정기 백업 + 로그를 조합해 특정 시점 복구 (Point-In-Time Recovery, PITR)
5. 복구 전략
(1) Full Backup + Incremental / Differential
- Full: 전체 데이터 복사
- Incremental: 변경분만 복사 (백업 효율적)
- Differential: 마지막 전체 백업 이후 변경된 모든 데이터
(2) Hot / Warm / Cold Backup
방식 | 설명 |
---|
Hot | 서비스 중에도 백업 가능 |
Warm | DB 중지 없이 접근 제한 |
Cold | 완전히 종료 후 백업 (정합성 높음) |
6. 고급 기술 및 트렌드
- 플래시백(Flashback): 오라클 등에서 지원, 특정 시점으로 빠르게 복구
- CDC (Change Data Capture) 기반 복구
- 하이브리드 백업 (On-prem + Cloud)
- AI 기반 장애 예측 및 자동 복구 시스템
7. 기술사적 관점 정리
- 데이터베이스 복구는 단순한 데이터 복원이 아닌, 트랜잭션 무결성과 서비스 지속성을 위한 핵심 인프라 구성 요소이다.
- 설계 시에는 RPO(Recovery Point Objective), RTO(Recovery Time Objective) 목표를 기반으로 **비즈니스 연속성 전략(BCP/DRP)**과 연계해 복구 체계를 수립해야 한다.
- 고가용성 구성(예: 이중화, 클러스터링, 스트리밍 복제 등)과 복구 정책 자동화를 통해 전체 시스템 복원력을 향상시킬 수 있다.