4.3 Timeline과 재복구
Recovery가 끝나 새로운 write가 시작되면 PostgreSQL은 새 timeline을 만듭니다. Timeline history file은 어느 WAL 위치에서 분기했는지 기록합니다.
timeline 1: ────────────────X
\
timeline 2: ───────X
\
timeline 3: ─────
첫 recovery 결과가 잘못됐다고 timeline 1 archive를 덮어쓰지 않습니다. 기존 history와 WAL을 보존하면 다른 target으로 다시 복구할 수 있습니다.
recovery_target_timeline은 기본적으로 적절한 최신 timeline을 따라가도록 설정할 수 있지만, 복구 목적에 따라 current 또는 명시적 timeline이 필요합니다. 선택한 base backup이 속한 timeline과 목표가 존재하는 child timeline을 확인합니다.
기록할 정보
- Base backup label과 시작 및 종료 LSN
- 선택한 recovery target과 timezone
- Recovery가 종료된 timeline
- 생성된 history file
- Promotion 또는 target action 시각
- Application traffic 전환 시각
Failover와 PITR을 반복한 환경에서는 같은 clock time에 여러 timeline의 data가 존재할 수 있습니다. 단순히 “최신 WAL”만 찾지 말고 history를 따라 목표 branch를 결정합니다.