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

Удаление устаревших WAL-файлов

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

  1. Пользователь инициирует удаление устаревших WAL-файлов командой copywala retention clean-outdated-wals.

  2. Продукт находит самую старую резервную копию в хранилище (по параметру backup_destination_uri).

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

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

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

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

  1. Пользователь инициирует удаление устаревших WAL-файлов командой copywala retention clean-outdated-wals.

  2. В хранилище резервных копий не найдено ни одной резервной копии.

  3. Удаление WAL-файлов не выполняется. В CLI выводится сообщение:

    cannot find the oldest postgres backup; enable --force-delete-all-wals-if-no-backups flag to delete all WAL files
  4. Пользователь инициирует удаление всех WAL-файлов командой copywala retention clean-outdated-wals --force-delete-all-wals-if-no-backups.

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

    oldest postgres backup not found; delete all wals
    <N> WAL files deleted

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

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

  • Нет прав для чтения директории с резервными копиями.

  • Нет прав для чтения директории с WAL-файлами.

  • Нет прав для удаления WAL-файлов.

  • Не удалось установить подключение к хранилищу резервных копий (backup_destination_uri).

  • Не удалось установить подключение к хранилищу WAL-файлов (wal_destination_uri).

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

    nothing to clean in WAL storage