Перейти к основному содержимому

Удаление резервных копий, не соответствующих политике хранения

Шаги сценария​

  1. Пользователь инициирует удаление резервных копий командой copywala retention clean-outdated-backups.

  2. Продукт удаляет резервные копии, не соответствующие установленной политике хранения, в CLI выведено сообщение вида:

    successfully cleaned outdated backups

Альтернативный сценарий: политика не задана​

Если политика хранения не была задана изначально, ничего не удаляется (политика отсутствует). В CLI выводится сообщение вида:

nothing to clean for given uri <backup_destination_uri>/<instance_name>

Где:

  • backup_destination_uri – параметр, определяющий хранилище резервных копий. Задается в copywala.yaml;
  • instance_name – полное уникальное наименование экземпляра агента. Создается в результате инициализации утилиты copywala.

Альтернативный сценарий: удаление устаревших WAL-файлов​

примечание

Сценарий удаления устаревших WAL-файлов применим только при включенной архивации WAL-файлов.

Устаревшими считаются WAL-файлы, которые предшествуют первому WAL-файлу (start_lsn_wal_file_name) самой старой из оставшихся после очистки резервных копий. Эти WAL-файлы больше не нужны ни для восстановления старых резервных копий (они уже удалены политикой хранения), ни для оставшихся резервных копий (они начинаются с более поздней точки). Удаление устаревших WAL-файлов позволяет освободить место в хранилище.

  1. Пользователь инициирует удаление резервных копий и устаревших WAL-файлов с использованием флага --delete-wals:

    copywala retention clean-outdated-backups --delete-wals
  2. Продукт удаляет резервные копии, не соответствующие установленной политике хранения.

  3. Продукт определяет резервную копию с минимальным start_lsn и удаляет WAL-файлы, предшествующие ее первому WAL-файлу start_lsn_wal_file_name.

  4. Продукт удаляет найденные WAL-файлы. В CLI выводятся сообщения вида:

    remove wal files before <start_lsn_wal_file_name> wal
    <N> WAL files deleted

Альтернативный сценарий: WAL-файлы не удаляются (резервных копий нет, force-флаг не задан)​

  1. Пользователь инициирует удаление резервных копий с использованием флага --delete-wals:

    copywala retention clean-outdated-backups --delete-wals
  2. Продукт удаляет резервные копии, не соответствующие установленной политике хранения.

  3. После удаления резервных копий в хранилище не остается ни одной копии. В CLI выводится сообщение:

    cannot find the oldest postgres backup; enable --force-delete-all-wals-if-no-backups flag to delete all WAL files

Альтернативный сценарий: удаление всех WAL-файлов (резервных копий нет, force-флаг задан)​

  1. Пользователь инициирует удаление командой copywala retention clean-outdated-backups --delete-wals --force-delete-all-wals-if-no-backups.

  2. В хранилище не осталось резервных копий. В CLI выводится сообщение:

    oldest postgres backup not found; delete all wals
    <N> WAL files deleted
  3. Все WAL-файлы будут удалены.

Альтернативный сценарий: WAL хранилище пустое​

  1. В WAL хранилище нет файлов. В CLI выводится сообщение:

    nothing to clean in WAL storage

Исключительные сценарии​

В CLI выводится сообщение об ошибке для случаев:

  • Нет прав для:
    • чтения директории с РК;
    • удаления РК;
    • чтения директории с WAL-файлами;
    • удаления WAL-файлов.
  • В хранилище нет устаревших WAL-файлов.
  • Не удалось установить подключение к целевой базе данных.
  • Если информация о резервной копии присутствует в базе данных и по политике такая копия подлежит удалению, но сама физическая копия в хранилище отсутствует, то возникнет ошибка.