pg_recvlogical
pg_recvlogical — управлять потоками логического декодирования PostgreSQL
Синтаксис
pg_recvlogical [параметр...]
Описание
Утилита pg_recvlogical управляет слотами логического декодирования и принимает данные из таких слотов репликации.
Она создаёт соединение в режиме репликации, так что на него распространяются те же ограничения, что и с pg_receivexlog, плюс ограничения логической репликации (см. Главу 47).
Параметры
Для выбора действия необходимо указать минимум один из этих параметров:
- --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. Как это работает, подробно описывается в Главе 47 и Разделе 51.3. В других режимах игнорируется.
- --if-not-exists
- Не выдавать ошибку, когда указан параметр - --create-slotи слот с заданным именем уже существует.
- -n- --no-loop
- Когда подключение к серверу потеряно, не повторять цикл, просто завершить работу. 
- -o- имя[=- значение]- --option=- имя[=- значение]
- Передаёт параметр - имя_параметрамодулю вывода, при этом может быть передано и его- значение. Набор параметров и их действия зависят от выбранного модуля вывода.
- -P- модуль- --plugin=- модуль
- Использовать указанный модуль вывода логического декодирования при создании слота. См. Главу 47. Этот параметр не действует, если слот уже существует. 
- -s- секунды- --status-interval=- секунды
- Этот параметр действует так же, как одноимённый параметр pg_receivexlog (см. его описание там). 
- -S- имя_слота- --slot=- имя_слота
- Этот параметр задаёт имя слота логической репликации, который будет использоваться в режиме - --start, создаваться в режиме- --create-slotили удаляться в режиме- --drop-slot.
- -v- --verbose
- Включает режим подробных сообщений. 
Далее описаны параметры управления подключением.
- -d- имя_бд- --dbname=- имя_бд
- Имя базы данных для подключения. Как именно используется данная база, рассказывается в описании действий программы. В данном аргументе может задаваться строка подключения. В этом случае параметры в строке подключения переопределяют одноимённые параметры, заданные в командной строке. По умолчанию в качестве имени базы выбирается имя пользователя. 
- -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 (см. Раздел 32.14).
Примеры
Примеры использования можно найти в Разделе 47.1.