4.1 WAL archiving
PITR은 base backup과 그 이후의 연속된 WAL을 사용합니다. Archive command는 같은 WAL segment가 여러 번 요청돼도 안전해야 하며, 이미 존재하는 다른 내용의 file을 덮어쓰면 안 됩니다.
wal_level = replica
archive_mode = on
archive_command = 'test ! -f /archive/%f && cp %p /archive/%f'
위 예시는 local lab용입니다. 운영에서는 remote repository, 원자적 upload, checksum, retry, encryption과 monitoring을 제공하는 도구를 사용합니다.
SELECT archived_count, failed_count,
last_archived_wal, last_archived_time,
last_failed_wal, last_failed_time
FROM pg_stat_archiver;
관측해야 할 것
- 마지막 성공 archive age
- 실패 counter 증가
pg_wal사용량과 disk 여유- Archive queue와 전송 latency
- Repository object 존재와 checksum
Archive가 막히면 WAL이 pg_wal에 쌓여 database volume을 가득 채울 수 있습니다. 파일을 임의로 삭제하지 말고 archive path와 원격 저장소를 복구합니다.