Backup & Disaster Recovery
Backup 성공 로그만으로 복구 가능성을 보장할 수 없습니다. 필요한 data와 WAL이 모두 존재하고, 격리된 환경에서 목표 시간 안에 restore하며, application이 정상 동작하는지 검증해야 비로소 복구 계획이 됩니다.
이 노트는 PostgreSQL logical과 physical backup에서 시작해 PITR, pgBackRest, Barman, off-site repository, restore drill과 disaster runbook까지 연결합니다. 명령 실행보다 RPO와 RTO 및 검증 증거를 먼저 정합니다.
차례
- Part I. 복구 전략: failure model, RPO, RTO, backup policy
- Part II. Logical Backup: pg_dump, pg_restore, global object
- Part III. Physical Backup: pg_basebackup, incremental, 검증
- Part IV. WAL과 PITR: archive, timeline, recovery target, WAL gap
- Part V. pgBackRest: stanza, repository, retention, restore
- Part VI. Barman: 중앙 backup server, streaming, recover
- Part VII. DR 운영: restore drill, HA와 DR, runbook, 감사
실습 원칙
- Production data directory에서 복구 실험을 하지 않습니다.
- Backup repository와 restore target을 분리합니다.
- 시간대, PostgreSQL major version, extension, encryption key를 기록합니다.
- Restore 성공 뒤 row count, constraint, application query, RPO를 검증합니다.
- 자격 증명과 실제 backup data를 저장소에 commit하지 않습니다.
복구 훈련 checklist를 복사해 각 훈련의 증거를 남길 수 있습니다.