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 и Разделе 49.3. В других режимах игнорируется.
- -n
--no-loop Когда подключение к серверу потеряно, не повторять цикл, просто завершить работу.
- -o имя[=значение]
--option=имя[=значение] Передаёт параметр имя_параметра модулю вывода, при этом может быть передано и его значение. Набор параметров и их действия зависят от выбранного модуля вывода.
- -P модуль
--plugin=модуль Использовать указанный модуль вывода логического декодирования при создании слота. См. Главу 46. Этот параметр не действует, если слот уже существует.
- -s секунды
--status-interval=секунды Этот параметр действует так же, как одноимённый параметр pg_receivexlog (см. его описание там).
- -S имя_слота
--slot=имя_слота Этот параметр задаёт имя слота логической репликации, который будет использоваться в режиме --start, создаваться в режиме --create-slot или удаляться в режиме --drop-slot.
- -v
--verbose Включает режим подробных сообщений.
Далее описаны параметры управления подключением.
- -d database
--dbname=database Этот параметр выбирает базу данных для подключения. Как именно она используется, можно узнать в описании соответствующих действий. Это может быть строка подключения libpq; за дополнительными сведениями обратитесь к Подразделу 31.1.1. По умолчанию её имя определяется именем пользователя.
- -h имя_компьютера-или-ip
--host=имя_компьютера-или-ip Указывает имя компьютера, на котором запущен сервер. Если значение начинается с косой черты, оно интерпретируется как имя каталога с доменным сокетом Unix. Значение по умолчанию берётся из переменной окружения PGHOST, если она установлена. В противном случае выполняется подключение к доменному сокету.
- -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).
Пред. | Начало | След. |
pg_receivexlog | Уровень выше | pg_restore |