basebackup_to_shell — пример создания адресата базовых резервных копий для модуля pg_basebackup

Модуль basebackup_to_shell добавляет собственного адресата базовых резервных копий под названием shell. Это позволяет выполнить pg_basebackup --target=shell или, в зависимости от конфигурации этого модуля, pg_basebackup --target=shell: СТРОКА_ПОДРОБНОГО_ОПИСАНИЯ, и приводит к выполнению серверной команды, выбранной администратором сервера, для каждого архива tar, сгенерированного в процессе резервного копирования. Команда получит содержимое этого архива через стандартный ввод.

Этот модуль задуман в первую очередь в качестве примера того, как создать новых адресатов резервной копии посредством модуля расширения, но в некоторых сценариях он может быть полезен и сам по себе. Чтобы этот модуль работал, его следует загрузить посредством shared_preload_libraries или local_preload_libraries.


Параметры конфигурации

basebackup_to_shell.command (string)
Команда, которую сервер должен выполнять для каждого архива, сгенерированного процессом резервного копирования. Если в командной строке содержатся символы %f, они будут заменены именем архива (например, base.tar). Если в командной строке содержатся символы %d, они будут заменены подробной информацией об адресате, предоставленной пользователем. При этом подробную информация об адресате требуется задавать, только если в командной строке указано %d; в иных случаях ее задавать нельзя. По соображениям безопасности эта информация должна содержать только буквенно-цифровые символы. Если в командной строке содержатся символы %%, они будут заменены одиночным %. Если в командной строке содержится символ %, за которым идет любой другой символ или конец строки, возникает ошибка.

basebackup_to_shell.required_role (string)
Роль, необходимая для использования адресата резервных копий shell. Если этот параметр не установлен, адресата shell может использовать любой пользователь репликации.


Автор

Роберт Хаас (Robert Haas), rhaas@postgresql.org