pgBackRest로 최신 백업 복원
PostgreSQL백업 및 PITR명령어
# PostgreSQL must be stopped and PGDATA empty (otherwise use --delta)
sudo systemctl stop postgresql-16
sudo -u postgres pgbackrest --stanza=<stanza> --log-level-console=info restore
# From a specific backup: --set=<backup_label>
# When restoring to another server for testing, disable archiving:
# sudo -u postgres pgbackrest --stanza=<stanza> --archive-mode=off restore
sudo systemctl start postgresql-16하는 일
최신 백업을 복원하고 recovery.signal과 restore_command를 기록한다. 시작 시 PostgreSQL은 아카이브된 모든 WAL을 가장 최근의 일관된 시점까지 재생하고 새 timeline으로 승격한다.
사용 시점
primary의 데이터 디렉터리를 잃었거나 손상되었을 때, 또는 백업의 복원 가능성을 정기적으로 테스트할 때.
주의
복원된 클러스터와 이전 클러스터가 동시에 같은 stanza로 아카이브하면 저장소가 손상된다. 테스트 복원에는 --archive-mode=off를 사용한다. Patroni 환경에서는 먼저 클러스터를 pause하거나 Patroni를 중지한다. 그렇지 않으면 Patroni가 개입한다. PGDATA 외부의 테이블스페이스나 경로가 있으면 --tablespace-map 및 link 옵션을 검토한다.