pg_recvlogical — управление потоками логического декодирования PostgreSQL
pg_recvlogical [параметр...]
Утилита pg_recvlogical управляет слотами логического декодирования и принимает данные из таких слотов репликации.
Она создаёт соединение в режиме репликации, так что на него распространяются те же ограничения, что и с pg_receivexlog, плюс ограничения логической репликации (см. Главу 46).
Для выбора действия необходимо указать минимум один из этих параметров:
--create-slotСоздать новый слот логической репликации с именем, заданным аргументом --slot, используя модуль вывода, заданный аргументом --plugin, для базы данных, указанной в --dbname.
--drop-slotУдалить слот репликации с именем, заданным аргументом --slot, и завершиться.
--startНачать приём потока изменений из слота логической репликации с именем, заданным аргументом --slot, и продолжать до сигнала прерывания. Если передача потока прерывается на другой стороне из-за выключения или остановки сервера, цикл подключения и передачи повторяется (если не добавлен параметр --no-loop).
Формат потока определяется модулем вывода, выбранным при создании слота.
Для получения потока подключаться нужно к той же базе, для которой создавался слот.
Параметры --create-slot и --start исключают друг друга. Действие --drop-slot несовместимо с любыми другими действиями.
Следующие параметры командной строки управляют расположением и форматом выводимых данных, а также другим поведением репликации:
-f имя_файла--file=имя_файлаЗаписывать полученные и декодированные данные транзакций в указанный файл. Для вывода в stdout укажите - (минус).
-F секунды--fsync-interval=секундыУстанавливает, как часто pg_recvlogical будет вызывать fsync(), чтобы гарантировать, что выходной файл надёжно сохранён на диске.
Сервер время от времени даёт клиенту команду сохранить данные и сообщить сохранённую позицию, но этот параметр позволяет выполнять сохранение чаще.
При значении, равном 0, функция fsync() вообще не вызывается, но серверу сообщается новая позиция. Это может привести к потере данных в случае сбоя.
-I lsn--startpos=lsnВ режиме --start репликация начнётся с данного LSN. Как это работает, подробно описывается в Главе 46 и Разделе 50.3. В других режимах игнорируется.
--if-not-existsНе выдавать ошибку, когда указан параметр --create-slot и слот с заданным именем уже существует.
-n--no-loopКогда подключение к серверу потеряно, не повторять цикл, просто завершить работу.
-o имя[=значение]--option=имя[=значение]Передаёт параметр имя_параметра модулю вывода, при этом может быть передано и его значение. Набор параметров и их действия зависят от выбранного модуля вывода.
-P модуль--plugin=модульИспользовать указанный модуль вывода логического декодирования при создании слота. См. Главу 46. Этот параметр не действует, если слот уже существует.
-s секунды--status-interval=секундыЭтот параметр действует так же, как одноимённый параметр pg_receivexlog (см. его описание там).
-S имя_слота--slot=имя_слотаЭтот параметр задаёт имя слота логической репликации, который будет использоваться в режиме --start, создаваться в режиме --create-slot или удаляться в режиме --drop-slot.
-v--verboseВключает режим подробных сообщений.
Далее описаны параметры управления подключением.
-d база_данных--dbname=база_данныхЭтот параметр выбирает базу данных для подключения. Как именно она используется, можно узнать в описании соответствующих действий. Это может быть строка подключения libpq; за дополнительными сведениями обратитесь к Подразделу 31.1.1. По умолчанию имя базы определяется именем пользователя.
-h имя_компьютера-или-ip--host=имя_компьютера-или-ipУказывает имя компьютера, на котором работает сервер. Если значение начинается с косой черты, оно определяет каталог Unix-сокета. Значение по умолчанию берётся из переменной окружения PGHOST, если она установлена. В противном случае выполняется подключение к Unix-сокету.
-p порт--port=портУказывает TCP-порт или расширение файла локального Unix-сокета, через который сервер принимает подключения. Значение по умолчанию определяется переменной окружения PGPORT, если она установлена, либо числом, заданным при компиляции.
-U user--username=userИмя пользователя для подключения. По умолчанию это имя текущего пользователя операционной системы.
-w--no-passwordНе выдавать запрос на ввод пароля. Если сервер требует аутентификацию по паролю и пароль не доступен с помощью других средств, таких как файл .pgpass, попытка соединения не удастся. Этот параметр может быть полезен в пакетных заданиях и скриптах, где нет пользователя, который вводит пароль.
-W--passwordПринудительно запрашивать пароль перед подключением к базе данных.
Это несущественный параметр, так как pg_recvlogical запрашивает пароль автоматически, если сервер проверяет подлинность по паролю. Однако, чтобы понять это, pg_recvlogical лишний раз подключается к серверу. Поэтому иногда имеет смысл ввести -W, чтобы исключить эту ненужную попытку подключения.
Также есть следующие дополнительные параметры:
-V--versionСообщить версию pg_recvlogical и завершиться.
-?--helpПоказать справку по аргументам командной строки pg_recvlogical и завершиться.
Как и большинство других утилит PostgreSQL, приложение также использует переменные окружения, поддерживаемые libpq (см. Раздел 31.14).
Примеры использования можно найти в Разделе 46.1.