WEBBOOK CHAPTER

PostgreSQL 18, 입문에서 시니어까지: 31장. 백업·PITR 완주 워크북

31장. 백업·PITR 완주 워크북

연습 시나리오는 “14:02:30에 운영자가 오류 UPDATE로 주문 상태 8만 건을 바꾸었다”다. RPO 30초, RTO 15분을 가정한다. 사고 시각만 믿지 않고 deployment, audit log, business event, WAL LSN을 교차해 마지막 정상 지점을 정한다.

물리 복구 순서는 새 환경 준비, base backup 복원, restore_command, recovery target 지정, WAL replay, target 도달, promote, 업무 대사, application smoke, traffic 전환이다. 원본 cluster를 덮어쓰지 않는다.


recovery_target_time = '2026-08-14 14:02:29+09'
recovery_target_action = 'pause'
restore_command = 'restore-wal %f %p'

복구 후에는 row count만 비교하지 않는다. 항상 성립해야 하는 불변식—결제 합계와 주문 합계, 재고 음수 0건, idempotency key 중복 0건—을 SQL로 검증한다. 복구에 쓴 artifact digest, timeline, 실제 RPO/RTO, 미복구 건을 보고서에 남긴다.