qhb_recvlogical - управление потоками логического декодирования QHB
qhb_recvlogical - управление потоками логического декодирования QHB
Описание
qhb_recvlogical управляет слотами репликации с логическим декодированием
и передает данные из таких слотов репликации.
Он создает соединение в режиме репликации, поэтому к нему применяются те же ограничения, что и для qhb_receivewal, плюс ограничения для логической репликации.
qhb_recvlogical не имеет эквивалента режимам просмотра и получения
интерфейса SQL логического декодирования. Утилита отправляет подтверждения
воспроизведения для данных в "ленивом режиме", по мере их получения и при чистом
выходе. Чтобы проверить ожидающие данные в слоте, не используя их,
используйте pg_logical_slot_peek_changes.
Синтаксис
qhb_recvlogical [option...]
Параметры
Для выбора действия необходимо указать хотя бы один из следующих параметров:
Возможные действия
--create-slot
Создайте новый слот логической репликации с именем,
заданным параметром --slot, используя плагин вывода,
заданный параметром --plugin, для базы данных,
заданной параметром --dbname.
--drop-slot
Удалить слот репликации с именем, указанным параметром --slot, затем выйти.
--start
Начать запись потока в слот логической репликации,
указанный в параметре --slot, продолжая до сигнала отмены.
Если поток изменений на стороне сервера заканчивается
отключением или отключением сервера, повторите цикл, если не указан параметр --no-loop.
Формат потока определяется выходным плагином, указанным при создании слота. Соединение должно быть с той же базой данных, которая использовалась для создания слота.
--create-slotи--startмогут быть указаны вместе.--drop-slotне может быть объединено с другим действием.
Options
Следующие параметры командной строки управляют расположением и форматом вывода и другим поведением репликации:
| Аргумент | Описание |
|---|---|
| -S, --slot=SLOTNAME | Имя слота логической репликации для режимов --create-slot, --create-slot, --drop-slot. |
| -E, --endpos=LSN | Автоматически останавливать репликацию и выходить с кодом выхода 0, когда приём достигает указанного номера LSN. Подробнее |
| -f, --file=FILE | Записать полученные и декодированные данные транзакций в файл. Используйте -(минус) для стандартного вывода (stdout). |
| -F --fsync-interval=SECS | Частота вызова fsync() Подробнее |
| --if-not-exists | Не создавать ошибку, если --create-slot указан, а слот с таким именем уже существует. |
| -I, --startpos=LSN | В режиме --start начать репликацию с указанного номера LSN. Игнорируется в других режимах. |
| -n, --no-loop | Завершить работу с ошибкой, и не выполнять новую попытку подключения при ошибках соединения. |
| -o, --option=NAME[=VALUE] | Передать пару Name:Value в плагин вывода, указание Value опционально. Существующие параметры и их поведение зависит от используемого выходного плагина. |
| -P, --plugin=PLUGIN | Использовать указанный плагин вывода логического декодирования при создании слота репликации. Не действует, если слот уже существует. |
| -s, --status-interval=SECS | Интервал отправки пакетов состояния. Аналогично параметру qhb_receivewal - status interval |
End position
-E lsn, --endpos=lsn
Автоматически останавливать репликацию и выходить с кодом выхода 0,
когда приём достигает указанного номера LSN.
Если есть запись с LSN, равным lsn, запись будет обработана.
Опция --endpos не знает границ транзакции и может обрезать вывод во время транзакции.
Любая частично выводимая транзакция не будет использована и будет воспроизведена снова,
когда слот будет считан в следующий раз. Отдельные сообщения никогда не усекаются.
fsync-interval
-F SECS, --fsync-interval=SECS
Определяет, как часто qhb_recvlogical должен вызывать вызовы fsync()
чтобы убедиться, что выходной файл безопасно записан на диск.
Сервер иногда запрашивает у клиента очистку и сообщает серверу о положении очистки.
Этот параметр необходим для более частого выполнения сбросов. Задание интервала 0 отключает вызовы fsync() полностью, в то же время сообщая о ходе выполнения на сервер. В этом случае данные могут быть потеряны в случае сбоя.
CONNECTION OPTIONS
Следующие параметры командной строки управляют параметрами подключения к базе данных.
| Аргумент | Описание |
|---|---|
| -d, --dbname=DBNAME | Имя базы данных для подключения. |
| -h, --host=HOSTNAME | Имя хоста, на котором работает сервер. Если значение начинается с косой черты, оно используется в качестве каталога для сокета домена Unix. Значение по умолчанию берется из переменной среды PGHOST, далее предпринимается попытка подключения через сокет домена Unix. |
| -p, --port=PORT | TCP порт или расширение файла локального сокета домена Unix. По умолчанию берётся переменная среды PGPORT, или порт заданный при компиляции. |
| -U, --username=NAME | Имя пользователя для подключения. |
| -w, --no-password | Не запрашивать ввод пароля. Если серверу требуется аутентификация по паролю, а пароль недоступен другими способами, такими как файл .pgpass, попытка подключения завершится неудачно. Эта опция может быть полезна в пакетных заданиях и сценариях, где нет ни одного пользователя для ввода пароля. |
| -W, --password | Автоматически запросить пароль, если сервер требует аутентификацию по паролю. Утилита будет пытаться подключиться, для аутентификации. В некоторых случаях стоит ввести -W чтобы избежать дополнительной попытки подключения. |
COMMON OPTIONS
| Аргумент | Описание |
|---|---|
| -?, --help | Показать справку об аргументах командной строки и выйти. |
| -V, --version | Вывести версию утилиты и выйти. |
| -v, --verbose | Включает подробный режим. |
Окружение
Эта утилита, как и большинство других утилит QHB, использует переменные окружения, поддерживаемые libpq .
Переменная окружения PG_COLOR указывает, использовать ли цвет в
диагностических сообщениях. Возможные значения always, auto, never .
Примечания
qhb_recvlogical сохранит разрешения группы для полученных файлов WAL,
если разрешения группы включены в исходном кластере.