Thanks to visit codestin.com
Credit goes to postgrespro.ru

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

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

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

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

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