Архивация WAL-файлов
Шаги сценария
- Пользователь настраивает архивирование WAL-файлов в выбранное хранилище (конфигурационный файл
copywala.yaml, параметрwal_destination_uri). - Пользователь включает архивирование WAL-файлов в настройках БД (postgresql.conf) путем установки значений
archive_mode=onиarchive_command='copywala archive-wal %f %p'. - При создании нового WAL-файла СУБД запускает команду, указанную в
archive_command, и архивирует WAL-файлы в заданное хранилище.
Примечание
Если в качестве хранилища используется локальное хранилище (wal_destination_uri: local-fs://...), то процесс архивации выполняется следующим образом:
- По указанному пути создается поддиректория
.archiving. - Запись WAL-файла осуществляется в данную поддиректорию.
- После завершения записи файла он перемещается в целевую директорию, указанную в
wal_destination_uriв настройкахcopywala.yaml.
Такой подход предотвращает ситуацию, при которой другие сервисы могут получить доступ к WAL-файлам до завершения их записи. В результате исключается обработка частично записанных файлов.
Исключительные сценарии
-
В CLI выводится сообщение об ошибке для случаев:
- Закончилось место на диске.
- Отсутствие прав на запись в хранилище.
- Неверно настроенная конфигурация.