Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Зачем нужно хранить FULL для выполнения последующих инкрементных бэкапов #375

Open
@triwada

Description

@triwada

Есть проблема с необходимостью хранения большого объёма бэкапов, может есть возможность оптимизировать этот момент?
Описание:

  1. на локальный раздел в ОС выполняется бэкап согласно расписанию: FULL раз в сутки, каждые 2 часа DELTA или PAGE.
  2. согласно документации DELTA/PAGE выполняется относительно успешного предыдущего успешного FULL или DELTA/PAGE (не указано, что для всех инкрементных нужно ещё хранить FULL)
  3. выполненные бэкапы постепенно переносятся на ленту, после чего их по идее можно удалять, освобождая место на локальном разделе бэкапов.

Но если удалить 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=INFOINFO: 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: 1WARNING: 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 timelinesWARNING: Cannot find valid backup on previous timelines, WAL archive is not availableERROR: Create new full backup before an incremental oneWARNING: backup in progress, stop backupWARNING: Backup QS3B9Q is running, setting its status to ERROR

Понятно, что FULL нужен для рестора, но зачем он нужен для последующих DELTA/PAGE (НЕ первого после FULL)?
Если поведение изменится, то можно существенно сэкономить на затратах на локальный диск для бэкапов, выступающих в качестве временного буфера перед перемещением бэкапов на ленту.
Есть довольно весомая разница в объёмах (особенно на БД с повышенной генерацией WAL) в хранении либо 1xFULL+1xDELTA, либо 1xFULL+11xDELTA (при условии, что DELTA каждые 2 часа).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions


      [8]ページ先頭

      ©2009-2025 Movatter.jp