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

Архивация WAL-файлов

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

  1. Пользователь настраивает архивирование WAL-файлов в выбранное хранилище (конфигурационный файл copywala.yaml, параметр wal_destination_uri).
  2. Пользователь включает архивирование WAL-файлов в настройках БД (postgresql.conf) путем установки значений archive_mode=on и archive_command='copywala archive-wal %f %p'.
  3. При создании нового WAL-файла СУБД запускает команду, указанную в archive_command, и архивирует WAL-файлы в заданное хранилище.
Примечание

Если в качестве хранилища используется локальное хранилище (wal_destination_uri: local-fs://...), то процесс архивации выполняется следующим образом:

  1. По указанному пути создается поддиректория .archiving.
  2. Запись WAL-файла осуществляется в данную поддиректорию.
  3. После завершения записи файла он перемещается в целевую директорию, указанную в wal_destination_uri в настройках copywala.yaml.

Такой подход предотвращает ситуацию, при которой другие сервисы могут получить доступ к WAL-файлам до завершения их записи. В результате исключается обработка частично записанных файлов.

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

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

    • Закончилось место на диске.
    • Отсутствие прав на запись в хранилище.
    • Неверно настроенная конфигурация.