두 종류 백업, 두 복구 story
Logical 백업 (pg_dump) 이 데이터 재생성하는 SQL statement. 버전 가로질러 portable, 선택적 (DB 한 개, 테이블 한 개), human-readable. 복원 느림, 주간 archive 또는 Postgres 버전 간 마이그레이션에 OK.
Physical 백업 (pg_basebackup) 이 데이터 디렉토리의 byte-for-byte 복사. 잡고 복원 빠름, WAL archiving 과 결합 시 point-in-time recovery (PITR) 지원 가능. 프로덕션 정답.
3-2-1 룰, 적용
데이터 복사본 셋, 두 다른 매체, 한 off-site. 호스트 Postgres 면: live DB + 제공자 snapshot + 자체 off-site 복사 (예: nightly logical dump 를 S3/R2/Backblaze 로). Self-hosted 면: live + 로컬 snapshot + 원격.
복원 테스트
테스트 안 한 백업이 wish. 주기적으로 최신 백업을 샌드박스에 복원; 행 카운트 확인; smoke-test 쿼리 실행. 백업 깨졌단 거 처음 발견하는 날이 prod down 인 날이면 안 됨.