49.2. Обработчики модулей архивирования #

Обработчики архивирования определяют, как именно модуль будет выполнять архивирование. Сервер будет вызывать их по мере необходимости для обработки каждого отдельного файла WAL.

49.2.1. Обработчик запуска #

Обработчик startup_cb вызывается вскоре после загрузки модуля. Этот обработчик можно использовать для любой необходимой дополнительной инициализации. Если есть данные о состоянии модуля архивирования, обработчик может использовать state->private_data для их хранения.

typedef void (*ArchiveStartupCB) (ArchiveModuleState *state);

49.2.2. Обработчик проверки #

Обработчик check_configured_cb вызывается, чтобы проверить, полностью ли настроен модуль и готов ли он принимать файлы WAL (в частности, что для его параметров конфигурации установлены допустимые значения). Если функция check_configured_cb не определена, сервер всегда предполагает, что модуль готов к работе.

typedef bool (*ArchiveCheckConfiguredCB) (ArchiveModuleState *state);

Если возвращается true, сервер перейдёт к архивированию файла, вызвав обработчик archive_file_cb. Если возвращается false, архивирование не производится и архиватор выдаст в журнал сервера следующее сообщение:

ВНИМАНИЕ: включён режим archive_mode, но архивирование не настроено

В последнем случае сервер будет периодически вызывать эту функцию, и архивирование начнётся только тогда, когда она вернёт true.

Примечание

Может быть полезно добавить дополнительную информацию к общему тексту предупреждения, когда функция возвращает false. Для этого добавьте сообщение в макрос arch_module_check_errdetail перед возвратом false. Как и errdetail(), этот макрос принимает строку формата с необязательным списком аргументов. Строка, переданная в макрос, будет выведена как строка DETAIL в предупреждающем сообщении.

49.2.3. Обработчик архивирования #

Обработчик archive_file_cb вызывается для архивирования одного файла WAL.

typedef bool (*ArchiveFileCB) (ArchiveModuleState *state, const char *file, const char *path);

Если возвращается true, сервер считает, что файл был успешно заархивирован, и может переработать или удалить исходный файл WAL. Если возвращается false или возникает ошибка, сервер сохраняет исходный файл WAL и повторяет попытку архивирования позже. Аргумент файл содержит только имя архивируемого файла WAL, а путь содержит полный путь к файлу WAL (включая имя файла).

Примечание

Обработчик archive_file_cb вызывается в кратковременном контексте памяти, который будет сбрасываться между вызовами. Если нужен долгоживущий контекст, создайте его в обработчике startup_cb.

49.2.4. Обработчик выключения #

Обработчик shutdown_cb вызывается, когда завершается процесс архиватора (например, после ошибки) или изменяется значение archive_library. Если функция shutdown_cb не определена, никакие специальные действия в этих случаях не предпринимаются. Если есть данные о состоянии модуля архивирования, этот обработчик должен удалить их во избежание утечек.

typedef void (*ArchiveShutdownCB) (ArchiveModuleState *state);
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy