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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

50.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