Глава 53. Модули архивирования

PostgreSQL предоставляет инфраструктуру для создания пользовательских модулей непрерывного архивирования (см. Раздел 25.3). Хотя выполнять архивирование, используя команду оболочки (т. е. archive_command) намного проще, пользовательский модуль архивирования может оказаться значительно более надёжным и производительным.

Если в параметре archive_library указана библиотека пользовательского модуля, сервер PostgreSQL будет отправлять заполненные файлы WAL этому модулю и по возможности не будет повторно использовать или удалять эти файлы до тех пор, пока модуль не сообщит, что они были успешно заархивированы. В конечном счёте модуль сам решает, что делать с каждым файлом WAL, но многие рекомендации перечислены в Подразделе 25.3.1.

Модули архивирования должны включать как минимум функцию инициализации (см. Раздел 53.1) и необходимые обработчики (см. Раздел 53.2). Однако этим их возможности не ограничиваются (например, они могут объявлять параметры GUC и регистрировать фоновые рабочие процессы).

Рабочий пример, демонстрирующий некоторые полезные приёмы, можно найти в модуле contrib/basic_archive.