본문으로 건너뛰기

4.2 Recovery target

Recovery target은 time, transaction ID, named restore point, LSN, immediate 중 하나로 지정할 수 있습니다. 업무 사건과 정확히 연결할 수 있는 marker를 선택합니다.

restore_command = 'cp /archive/%f %p'
recovery_target_time = '2026-09-01 10:14:30+09'
recovery_target_action = 'pause'

PostgreSQL 12 이상에서는 data directory에 recovery.signal을 만들고 recovery 설정을 postgresql.conf 계열에 둡니다.

touch "$PGDATA/recovery.signal"

안전한 순서

  1. Incident timestamp와 timezone을 확정합니다.
  2. 목표 이전의 base backup을 선택합니다.
  3. 별도 target에 restore합니다.
  4. Target 직전에서 pause합니다.
  5. Data를 검증합니다.
  6. 필요하면 recovery를 재시작하거나 다른 target으로 다시 restore합니다.

recovery_target_inclusive는 지정 transaction, LSN, time을 포함할지 결정합니다. Time 기반 target은 application event, database log와 clock synchronization을 확인합니다.

삭제된 일부 data만 필요하다면 PITR cluster를 별도로 띄운 뒤 logical export로 production에 되돌리는 방식이 production 전체 rewind보다 안전할 수 있습니다.