Open
Description
Есть проблема с необходимостью хранения большого объёма бэкапов, может есть возможность оптимизировать этот момент?
Описание:
- на локальный раздел в ОС выполняется бэкап согласно расписанию: FULL раз в сутки, каждые 2 часа DELTA или PAGE.
- согласно документации DELTA/PAGE выполняется относительно успешного предыдущего успешного FULL или DELTA/PAGE (не указано, что для всех инкрементных нужно е��ё хранить FULL)
- выполненные бэкапы постепенно переносятся на ленту, после чего их по идее можно удалять, освобождая место на локальном разделе бэкапов.
Но если удалить FULL, то бэкапы DELTA/PAGE не выполняются.
[postgres@pglab ~]$ pg_probackup-std-12 show -B /data/backup --instance pgpro-std12
=========================================================================================================================================
Instance Version ID Recovery Time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
=========================================================================================================================================
pgpro-std12 12 QS3B8N 2021-04-25 01:46:00+03 DELTA STREAM 1/1 6s 167kB 32MB 1.00 7/4F000028 7/4F000168 OK
pgpro-std12 12 QS3B5V 2021-04-25 01:44:20+03 DELTA STREAM 1/1 5s 167kB 32MB 1.00 7/4D000028 7/4D000168 OK
pgpro-std12 12 QS3B48 2021-04-25 01:43:24+03 FULL STREAM 1/0 10s 825MB 16MB 1.00 7/4B000028 7/4B000168 OK
[postgres@pglab ~]$ rm -rf /data/backup/backups/pgpro-std12/QS3B48
[postgres@pglab ~]$ pg_probackup-std-12 backup -B /data/backup --instance pgpro-std12 -b DELTA --stream --progress --log-level-console=INFO
INFO: Backup start, pg_probackup version: 2.4.10, instance: pgpro-std12, backup ID: QS3B9Q, backup mode: DELTA, wal mode: STREAM, remote: false, compress-algorithm: none, compress-level: 1
WARNING: Current PostgreSQL role is superuser. It is not recommended to run backup or checkdb as superuser.
WARNING: Valid backup on current timeline 1 is not found, trying to look up on previous timelines
WARNING: Cannot find valid backup on previous timelines, WAL archive is not available
ERROR: Create new full backup before an incremental one
WARNING: backup in progress, stop backup
WARNING: Backup QS3B9Q is running, setting its status to ERROR
Понятно, что FULL нужен для рестора, но зачем он нужен для последующих DELTA/PAGE (НЕ первого после FULL)?
Если поведение изменится, то можно существенно сэкономить на затратах на локальный диск для бэкапов, выступающих в качестве временного буфера перед перемещением бэкапов на ленту.
Есть довольно весомая разница в объёмах (особенно на БД с повышенной генерацией WAL) в хранении либо 1xFULL+1xDELTA, либо 1xFULL+11xDELTA (при условии, что DELTA каждые 2 часа).