bihactl
bihactl — создать BiHA-кластер в Postgres Pro
Синтаксис
bihactl cluster init [параметр...] --biha-listen-addresses --pgdata
bihactl cluster status [параметр...]
bihactl cluster show-config [параметр...]
bihactl node add [параметр...] --biha-node-id --pgdata { --use-leader | --magic-file | --magic-string }
bihactl node set front-follower [параметр...] --id { --magic-file | --magic-string }
bihactl node set leader [параметр...] --id { --magic-file | --magic-string }
bihactl run [параметр...]
bihactl segment add [параметр...] { --use-leader | --magic-file | --magic-string }
bihactl segment set leader [параметр...] --id { --magic-file | --magic-string }
bihactl unit set leader [параметр...] --id { --magic-file | --magic-string }
bihactl upgrade start [параметр...] { --magic-string | --new-leader-biha-port | --new-leader-host | --new-leader-port | --new-pgdata | --old-bin | --old-pgdata | --subscriber-username }
bihactl upgrade move { --new-magic-string | --new-pgdata | --old-bin | --old-pgdata }
bihactl upgrade finish [параметр...] { --new-magic-string | --subscriber-username }
bihactl --version
bihactl --help
Описание
bihactl — это утилита командной строки, которая позволяет создать BiHA-кластер, изменять его состав, а также отслеживать статус кластера. За подробной информацией о решении BiHA обратитесь к главе Встроенная отказоустойчивость (BiHA).
Важно
bihactl для Postgres Pro Standard не поддерживается на архитектуре процессоров Эльбрус.
Примечание
bihactl не поддерживает использование знака равенства с include_dir в конфигурационном файле postgresql.conf. Для корректной работы используйте документированный синтаксис.
В этом разделе содержится информация о командах утилиты bihactl:
Узел-последователь можно добавить с использованием «магической» строки, сохранённой после выполнения команды bihactl cluster init, передав в команде bihactl node add параметр -s.
Справка по командной строке #
cluster init #
Синтаксис:
bihactl cluster init [--biha-hosts=хосты] --biha-listen-addresses=адреса[--biha-node-id=идентификатор_узла] [--biha-port=порт_biha] [--cluster-name=имя_кластера] [--convert [--server-cert=/путь/к/сертификату_сервера\ --server-key=/путь/к/ключу_сервера]] [--magic-file=файл_с_магической_строкой] [--max-replicas=макс_число_реплик] [--minnodes=мин_число_узлов] [--node-name=имя_узла] [--no-password] [--nquorum=значение_кворума] [--options=параметры_initdb] --pgdata=каталог_данных[--pg-port=порт] [--preferred-roles=предпочтительные_роли_для_репликации] [--priority=приоритет_узла] [--replication-hosts=хосты_для_репликации] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] \ [--sync-standbys=число_синхронных_ведомых_узлов[--sync-standbys-min=мин_число_синхронных_ведомых_узлов]] [--sql-hosts=хосты_для_sql] [--use-ssl] [--username=имя_начального_суперпользователя]
Инициализирует кластер и задаёт узел-лидер. Команду нужно выполнять на сервере, где будет размещён лидер. При выполнении этой команды bihactl запускает утилиту initdb. На этом этапе также можно указать необходимые параметры этой утилиты при помощи флага -o.
За подробной информацией обратитесь к разделам Параметры аутентификации, Параметры подключения лидера и Сетевые параметры.
-Iid_узла--biha-node-id=#id_узлаУказывает уникальный идентификатор узла. Значение должно быть целым числом больше нуля.
--cluster-name=#имя_кластераУказывает имя BiHA-кластера. Имя по умолчанию —
biha_node_1111.-C--convert#Преобразовывает существующий узел в узел-лидер BiHA-кластера. Если имя начального суперпользователя на существующем узле отличается от
postgres, укажите это имя с помощью параметра --username.--max-replicas=#макс_число_репликУказывает максимальное число репликационных подключений biha к узлу, т.е. максимальное число процессов walsender, где в качестве
application_nameуказаноbiha_node_*.Возможные значения:
0,INT_MAX. Значение по умолчанию —INT_MAX, количество подключений неограниченно.-Mмин_число_узлов--minnodes=#мин_число_узловУказывает минимальное число работающих узлов, при котором узел-лидер будет доступен для пишущих транзакций. Если параметр не задан, его значение будет равно значению параметра
--nquorum.--no-password#Если задан, bihactl не предлагает вручную указать пароль для роли
biha_replication_user.--node-name=#имя_узлаУказывает имя узла-лидера.
-Nзначение_кворума--nquorum=#значение_кворумаУказывает минимальное число узлов, которые должны проголосовать за нового лидера при отказе текущего лидера. Значение по умолчанию —
2.Устанавливая это значение, принимайте во внимание возможный риск разделения кластера. Рекомендуется использовать следующую формулу: (
общее_число_узлов+ 1)/2. Например, если в кластере 3 узла,значение_кворумадолжно быть 2.-oпараметры_initdb--options=#параметры_initdbУказывает дополнительные параметры initdb. Этот параметр игнорируется при преобразовании существующего узла с помощью --convert.
Использование параметра
--usernameутилиты initdb не поддерживается. Вместо него используйте параметр--usernameутилиты bihactl.-Dкаталог_данных--pgdata=#каталог_данныхУказывает каталог, где будет храниться кластер баз данных. По умолчанию bihactl использует значение
PGDATA.--preferred-roles=#предпочтительные_роли_для_репликацииУказывает предпочтительную роль узла для репликации в BiHA-кластере с каскадной репликацией.
Возможные значения: комбинации
L(лидер),F(последователь) иR(рефери). Значение должно содержать от 1 до 3 символов, которые не должны повторяться. Например:L,F,LFRилиLF.Значение по умолчанию —
L, которое означает, что данные реплицируются только с лидера.--priority=#приоритет_узлаЗадаёт приоритет узла, который влияет как на выборы, так и на репликацию в кластере, в секундах. Возможные значения:
0,INT_MAX. Значение по умолчанию —-1, при котором параметр игнорируется. Значение параметра можно изменить только функцией biha.set_priority.BiHA использует этот параметр конфигурации для следующих целей:
Задать тайм-аут начала репликации при выборе источника репликации в BiHA-кластере с каскадной репликацией. Чем выше значение, тем позднее узел начинает репликацию и разрешает подключение менее приоритетных узлов. Параметр необходим для того, чтобы узлы кластера могли наладить схему каскадной репликации автоматически.
Установить приоритет узла в кластере с синхронной репликацией. Значение определяет тайм-аут, по истечении которого узел предложит себя в качестве кандидата на выборах. Нулевое значение указывает на самый высокий приоритет.
Важно
Чтобы обеспечить корректную работу параметра, задайте для --sync-standbys значение на одну единицу меньше, чем общее число узлов кластера.
-Yчисло_синхронных_ведомых_узлов--sync-standbys=#число_синхронных_ведомых_узловВключает кворумную синхронную репликацию, устанавливая параметр synchronous_standby_names и указывая число синхронных резервных узлов (кворум) с методом
ANY. Значение должно быть целочисленным и больше нуля. Оно также должно быть выше значения параметра --sync-standbys-min, если оно задано, и не должно превышать число последователей без учёта рефери. Рекомендуется указывать значениечисло_синхронных_ведомых_узловменьше, чем значение параметра --minnodes.-yмин_число_синхронных_ведомых_узлов--sync-standbys-min=#мин_число_синхронных_ведомых_узловВключает нестрогую кворумную синхронную репликацию, указывая значение поля
MINпараметра synchronous_standby_names. Это значение задаёт минимальное число синхронных резервных узлов, которые должны быть доступны, чтобы лидер продолжал подтверждать транзакции. Значениеминимальное_число_синхронных_ведомых_узловдолжно быть целочисленным, равно или больше нуля, а также меньше, чем --sync-standbys. Если параметр не задан, BiHA-кластер будет работать в соответствии с ограничениями синхронной репликации по умолчанию, т.е. лидер будет недоступен для пишущих транзакций, пока все последователи не достигнут его текущего состояния.-S--use-ssl#Включает защищённый режим передачи служебной информации между узлами кластера по протоколу SSL/TLS управляющего канала biha (
BCP).Важно
Чтобы использовать SSL для служебных подключений, установленная версия OpenSSL должна быть 1.1.1 или выше. В противном случае BiHA-кластер будет создан без SSL для служебных подключений, и в журнале будет записано соответствующее сообщение.
--username=#имя_начального_суперпользователяЗадаёт имя начального суперпользователя. По умолчанию это имя пользователя ОС, запускающего
initdb. Используйте этот параметр в следующий случаях:При инициализации BiHA-кластера с нуля, если необходимо задать имя начального суперпользователя, отличное от
postgres.При преобразовании существующего узла, на котором имя начального суперпользователя отличается от
postgres.
Использование параметра
--usernameутилиты initdb не поддерживается.
cluster show-config #
Синтаксис:
bihactl cluster show-config [--biha-listen-addresses=адреса] [--format=формат_вывода_данных] [--magic-file=файл_с_магической_строкой] [--magic-string=магическая_строка] [--pg-port=порт] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]]
Отображает полную информацию о конфигурации кластера. Пример вывода команды в формате JSON выглядит следующим образом:
{
"proxima_enabled": false,
"use_ssl": false,
"service_mode": false,
"user_biha_cert": "",
"user_biha_key": "",
"ssl_certificate": "",
"ssl_private_key": "",
"ssl_mode": "",
"synchronous_standby_names": {
"count": -1,
"min": -2,
"names": []
},
"unit": {
"id": 1111,
"name": "biha_node_1111",
"can_be_leader": true,
"can_vote": true,
"priority": -1,
"leader_timeout": 20000,
"mode": "regular",
"repl_pref_roles": "L",
"nquorum": 1,
"minnodes": 1,
"heartbeat_send_period": 1000,
"heartbeat_max_lost": 10,
"no_wal_on_follower": 5000,
"children": [
{
"id": 111,
"name": "biha_node_111",
"can_be_leader": true,
"can_vote": true,
"priority": -1,
"leader_timeout": 20000,
"mode": "regular",
"repl_pref_roles": "L",
"nquorum": 2,
"minnodes": 2,
"heartbeat_send_period": 1000,
"heartbeat_max_lost": 10,
"no_wal_on_follower": 5000,
"children": [
{
"id": 1,
"name": "biha_node_1",
"can_be_leader": true,
"can_vote": true,
"priority": -1,
"leader_timeout": 20000,
"mode": "regular",
"repl_pref_roles": "L",
"pg_port": 5432,
"biha_port": 15432,
"max_replicas": 2147483647,
"flw_ro": true,
"config_send_period": 10000,
"watchdog_timeout": 2,
"callbacks_timeout": 10000,
"asyncaction_timeout": 30000,
"manage_slots_xmin": true,
"deny_wal_sources": [],
"biha_listen_addresses": [
{
"address": "biha-db-4",
"port": -1
}
],
"sql_hosts": [],
"replication_hosts": [],
"biha_hosts": [],
"unit_type": "node"
},
{
"id": 2,
"name": "biha_node_2",
"can_be_leader": true,
"can_vote": true,
"priority": -1,
"leader_timeout": 20000,
"mode": "regular",
"repl_pref_roles": "L",
"pg_port": 5432,
"biha_port": 5433,
"max_replicas": 2147483647,
"flw_ro": true,
"config_send_period": 10000,
"watchdog_timeout": 2,
"callbacks_timeout": 10000,
"asyncaction_timeout": 30000,
"manage_slots_xmin": true,
"deny_wal_sources": [],
"biha_listen_addresses": [
{
"address": "biha-db-2",
"port": -1
}
],
"sql_hosts": [],
"replication_hosts": [],
"biha_hosts": [],
"unit_type": "node"
}
],
"unit_type": "segment"
}
],
"unit_type": "segment"
}
}За подробной информацией обратитесь к разделам Параметры аутентификации, Параметры подключения лидера и Сетевые параметры.
--format=формат_вывода_данныхУказывает формат вывода информации о конфигурации. Возможные значения:
json(по умолчанию),yaml.
cluster status #
Синтаксис:
bihactl cluster status [--biha-listen-addresses=адреса] [--format=формат_вывода_данных] [--magic-file=файл_с_магической_строкой] [--magic-string=магическая_строка] [--pg-port=порт] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]]
Проверяет статус узла и отображает его в представлении biha.status_v.
За подробной информацией обратитесь к разделам Параметры аутентификации, Параметры подключения лидера и Сетевые параметры.
--format=формат_вывода_данныхУказывает формат вывода информации о статусе. Возможные значения:
json,yamlиtable(по умолчанию).
node add #
Синтаксис:
bihactl node add [--biha-hosts=хосты] [--biha-listen-addresses=адреса] [--backup-method=средство_резервного_копирования] [--backup-options=параметры_резервного_копирования] --biha-node-id=идентификатор_узла[--biha-port=порт_biha] [--can-vote=true_или_false] [--can-be-leader=true_или_false] [--convert-standby [--server-cert=/путь/к/сертификату_сервера\ --server-key=/путь/к/ключу_сервера]] [--max-replicas=макс_число_реплик] [--mode=режим_узла] [--referee-with-postgres-db]] [--node-name=имя_узла] --pgdata=каталог_данных[--pg-port=порт] [--replication-hosts=хосты_для_репликации] [--preferred-roles=предпочтительные_роли_для_репликации] [--priority=приоритет_узла] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--segment-id=идентификатор_сегмента| --segment-name=имя_сегмента} {--use-leader=информация_для_подключения| --magic-string=магическая_строка| --magic-file=файл_с_магической_строкой} [--sql-hosts=хосты_для_sql]
Добавляет последователя в инициализированный кластер. Команду необходимо выполнять на сервере, где будет размещён последователь. При выполнении этой команды создаётся резервная копия лидера с помощью pg_basebackup или pg_probackup. При добавлении узла утилита bihactl удерживает слот репликации, вызывая pg_basebackup с параметрами --slot= или pg_probackup с параметрами ИМЯ_СЛОТА, --wal-method=stream, --checkpoint=fast--stream --slot=, что предотвращает удаление WAL на лидере во время создания резервной копии.ИМЯ_СЛОТА
Примечание
Узлы необходимо добавлять по очереди. Не добавляйте новый узел, если создание ранее добавленного узла ещё не завершено и узел находится в состоянии CSTATE_FORMING. В противном случае может возникнуть следующая ошибка:
WARNING: aborting backup due to backend exiting before pg_backup_stop was
called
Для выбора утилиты резервного копирования используется параметр -m, а параметры выбранной утилиты можно задать при помощи параметра -O.
За подробной информацией обратитесь к разделам Параметры аутентификации, Параметры подключения лидера и Сетевые параметры.
-mметод_резервирования--backup-method=#метод_резервированияУказывает утилиту резервного копирования. Допускаются значения
pg_basebackup,pg_probackupиpg_probackup3. Значение по умолчанию —pg_basebackup. Если не указывать параметр--backup-method, будет использован метод резервного копирования по умолчанию. Утилитаpg_basebackup— единственное допустимое значение при добавлении узла-рефери.-Oпараметры_резервирования--backup-options=#параметры_резервированияУказывает дополнительные параметры резервного копирования в зависимости от утилиты резервного копирования, заданной в параметре
--backup-method.-Iid_узла--biha-node-id=#id_узлаУказывает уникальный идентификатор узла. Значение должно быть целым числом больше нуля.
--can-vote#Определяет, может ли узел голосовать. Значение по умолчанию —
true. Если заданоfalse, узел не может голосовать, а также не может выдвигать себя в качестве кандидата на выборах лидера.--can-be-leader#Определяет, может ли узел стать лидером. Значение по умолчанию —
true. Если заданоfalse, узел не может выдвигать себя в качестве кандидата на выборах лидера.-c--convert-standby#Преобразовывает существующий узел в узел-последователь отказоустойчивого кластера. Узел должен быть репликой узла-лидера до преобразования.
--max-replicas=#макс_число_репликУказывает максимальное число репликационных подключений biha к узлу, т.е. максимальное число процессов walsender, где в качестве
application_nameуказаноbiha_node_*.Возможные значения:
0,INT_MAX. Значение по умолчанию —INT_MAX, количество подключений неограниченно.-rрежим_работы_узла--mode=#режим_работы_узлаУказывает режим работы узла. Допустимы следующие значения:
regular: узел может быть как лидером, так и последователем. Это значение по умолчанию.referee: узел только участвует в выборах лидера и не содержит пользовательских баз данных.referee_with_wal: узел участвует в выборах лидера так же, как в режимеreferee, и получает все файлы WAL от узла-лидера.
По умолчанию база данных
postgresне копируется на узел в режимеrefereeилиreferee_with_wal. Чтобы скопировать базу данныхpostgresна рефери, воспользуйтесь параметром --referee-with-postgres-db.--node-name=#имя_узлаУказывает имя узла-последователя. Если не указано, имя генерируется автоматически в формате
biha_node_+--biha-node-id. Например, если--biha-node-id— 1, имя узла —biha_node_1.-Dкаталог_данных--pgdata=#каталог_данныхУказывает каталог, где будет храниться кластер баз данных. Если параметр не задан, bihactl будет использовать значение
PGDATA.--preferred-roles=#предпочтительные_роли_для_репликацииУказывает предпочтительную роль узла для репликации в BiHA-кластере с каскадной репликацией.
Возможные значения: комбинации
L(лидер),F(последователь) иR(рефери). Значение должно содержать от 1 до 3 символов, которые не должны повторяться. Например:L,F,LFRилиLF.Значение по умолчанию —
L, которое означает, что данные реплицируются только с лидера.--priority=#приоритет_узлаЗадаёт вес узла, который влияет как на выборы, так и на репликацию в кластере, в миллисекундах. Возможные значения:
0,INT_MAX. Значение по умолчанию —-1, при котором параметр игнорируется. Значение параметра можно изменить только функцией biha.set_priority.BiHA использует этот параметр конфигурации для следующих целей:
Задать тайм-аут начала репликации при выборе источника репликации в BiHA-кластере с каскадной репликацией. Чем выше значение, тем позднее узел начинает репликацию и разрешает подключение менее приоритетных узлов. Параметр необходим для того, чтобы узлы кластера могли наладить схему каскадной репликации автоматически.
Установить приоритет узла в кластере с синхронной репликацией. Значение определяет тайм-аут, по истечении которого узел предложит себя в качестве кандидата на выборах. Нулевое значение указывает на самый высокий приоритет.
Важно
Чтобы обеспечить корректную работу параметра, задайте для --sync-standbys значение на одну единицу меньше, чем общее число узлов кластера.
-R--referee-with-postgres-db#Копирует базу данных
postgresсо всеми объектами на узел-рефери. Этот параметр можно использовать только при добавлении узла в режимеrefereeилиreferee_with_wal.--server-cert=#/путь/к/сертификату_сервераУказывает путь к SSL-сертификату для узла BiHA в формате PEM.
--server-key=#/путь/к/ключу_сервераУказывает путь к закрытому ключу сертификата --server-cert в формате PEM.
--segment-id=#идентификатор_сегментаУказывает уникальный идентификатор сегмента, в который добавляется узел. Если сегмент не указать, по умолчанию узел будет добавлен в сегмент
111. Необходимо использовать либо--segment-id, либо --segment-name для указания сегмента.--segment-name=#имя_сегментаУказывает имя сегмента, в который добавляется узел. Если сегмент не указать, по умолчанию узел будет добавлен в сегмент
111. Необходимо использовать либо--segment-name, либо --segment-id для указания сегмента.
node set front-follower #
Синтаксис:
bihactl node set front-follower --id=идентификатор_узла[--mode=режим_переключения] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--magic-string=магическая_строка| --magic-file=магический_файл}
Повышает узел с указанным идентификатором до главного последователя. Повышаемый узел должен располагаться в сегменте-последователе. Команду можно выполнить на любом узле BiHA-кластера.
За подробной информацией обратитесь к разделам Параметры аутентификации и Параметры подключения лидера.
--id=#id_узлаУказывает уникальный идентификатор повышаемого узла. Узел должен располагаться в сегменте-последователе.
--mode=#режим_переключенияУказывает режим переключения. Поддерживаются следующие режимы:
graceful: повышаемый узел ожидает понижения старого главного последователя и, при необходимости, догоняет его по записям WAL. Это значение по умолчанию.immediate: переключение происходит немедленно, без ожидания. Состояние узла с указанным идентификатором сразу меняется наFRONT_FOLLOWER, пропуская состояниеFOLLOWER_OFFERED. В этом режиме функция-обработчикLEADER_CHANGE_STARTEDне вызывается. Если на текущем главном последователе выполняется команда в режимеimmediate, его состояние сразу меняется наFOLLOWERи собщение о смене лидера передаётся на другие узлы.Важно
Режим
immediateнебезопасен, так как может привести к потере данных. Перед переключением в этом режиме рекомендуется включить автоматическую синхронизацию, задав для параметра конфигурации biha.autorewind значениеtrue.
node set leader #
Синтаксис:
bihactl node set leader --id=идентификатор_узла[--mode=режим_переключения] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--magic-string=магическая_строка| --magic-file=магический_файл}
Повышает узел с указанным идентификатором до лидера. Повышаемый узел должен располагаться в сегменте-лидере. Команду можно выполнить на любом узле BiHA-кластера.
За подробной информацией обратитесь к разделам Параметры аутентификации и Параметры подключения лидера.
--id=#id_узлаУказывает уникальный идентификатор повышаемого узла. Узел должен располагаться в сегменте-лидере.
--mode=#режим_переключенияУказывает режим переключения. Поддерживаются следующие режимы:
graceful: повышаемый узел ожидает понижения старого лидера и, при необходимости, догоняет его по записям WAL. Это значение по умолчанию.immediate: переключение происходит немедленно, без ожидания. Состояние узла с указанным идентификатором сразу меняется наLEADER_RW/LEADER_RO, пропуская состояниеFOLLOWER_OFFERED. В этом режиме функция-обработчикLEADER_CHANGE_STARTEDне вызывается. Если на текущем лидере выполняется команда в режимеimmediate, его состояние сразу меняется наFOLLOWERи собщение о смене лидера передаётся на другие узлы.Важно
Режим
immediateнебезопасен, так как может привести к потере данных. Перед переключением в этом режиме рекомендуется включить автоматическую синхронизацию, задав для параметра конфигурации biha.autorewind значениеtrue.
run #
Синтаксис:
bihactl runпуть/к/скрипту_в_формате_.yml[--sql-output-format=формат_вывода]
Читает скрип, расположенный по указанному пути, и выполняет команды, перечисленные в скрипте. За подробной информацией обратитесь к Подразделу 26.3.14.
-fформат_вывода--sql-output-format=#формат_выводаУказывает формат вывода скрипта. Возможные значения:
json,yaml,table(по умолчанию) иcsv.
segment add #
Синтаксис:
bihactl segment add [--id=идентификатор_сегмента] [--minnodes=мин_число_узлов] [--name=имя_сегмента] [--nquorum=значение_кворума] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--use-leader=информация_для_подключения| --magic-string=магическая_строка| --magic-file=магический_файл}
Добавляет сегмент, который предназначен для объединения узлов BiHA-кластера, размещённых в одном центре обработки данных. Команду можно выполнить на любом узле BiHA-кластера.
За подробной информацией обратитесь к разделам Параметры аутентификации и Параметры подключения лидера.
segment set leader #
Синтаксис:
bihactl segment set leader --id=идентификатор_сегмента[--mode=режим_переключения] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--magic-string=магическая_строка| --magic-file=магический_файл}
Повышает сегмент с указанным идентификатором до сегмента-лидера. Команду можно выполнить на любом узле BiHA-кластера.
За подробной информацией обратитесь к разделам Параметры аутентификации и Параметры подключения лидера.
--id=#идентификатор_сегментаУказывает уникальный идентификатор повышаемого сегмента.
--mode=#режим_переключенияУказывает режим переключения. Поддерживаются следующие режимы:
graceful: повышаемый сегмент ожидает понижения старого лидера и, при необходимости, догоняет его по записям WAL. Это значение по умолчанию.immediate: переключение происходит немедленно, без ожидания. Состояние узла с указанным идентификатором сразу меняется наLEADER_RW/LEADER_RO, пропуская состояниеFOLLOWER_OFFERED. В этом режиме функция-обработчикLEADER_CHANGE_STARTEDне вызывается. Если на текущем лидере выполняется команда в режимеimmediate, его состояние сразу меняется наFOLLOWERи собщение о смене лидера передаётся на другие узлы.Важно
Режим
immediateнебезопасен, так как может привести к потере данных. Перед переключением в этом режиме рекомендуется включить автоматическую синхронизацию, задав для параметра конфигурации biha.autorewind значениеtrue.
unit set leader #
Синтаксис:
bihactl unit set leader --id=идентификатор_юнита[--mode=режим_переключения] [--root-cert=/путь/к/сертификату_цс--user-biha-cert=/путь/к/сертификату_клиента\ --user-biha-key=/путь/к/ключу_клиента[--biha-ssl-mode=режим_ssl]] {--magic-string=магическая_строка| --magic-file=магический_файл}
Повышает узел или сегмент в зависимости от указанного идентификатора. Команду можно выполнить на любом узле BiHA-кластера. Команда в первую очередь предназначена доя использования в скриптах автоматизации.
За подробной информацией обратитесь к разделам Параметры аутентификации и Параметры подключения лидера.
--id=#идентификатор_сегментаУказывает уникальный идентификатор повышаемого сегмента.
--mode=#режим_переключенияУказывает режим переключения. Поддерживаются следующие режимы:
graceful: повышаемый сегмент ожидает понижения старого лидера и, при необходимости, догоняет его по записям WAL. Это значение по умолчанию.immediate: переключение происходит немедленно, без ожидания. Состояние узла с указанным идентификатором сразу меняется наLEADER_RW/LEADER_RO, пропуская состояниеFOLLOWER_OFFERED. В этом режиме функция-обработчикLEADER_CHANGE_STARTEDне вызывается. Если на текущем лидере выполняется команда в режимеimmediate, его состояние сразу меняется наFOLLOWERи собщение о смене лидера передаётся на другие узлы.Важно
Режим
immediateнебезопасен, так как может привести к потере данных. Перед переключением в этом режиме рекомендуется включить автоматическую синхронизацию, задав для параметра конфигурации biha.autorewind значениеtrue.
upgrade start #
Синтаксис:
bihactl upgrade start [--convert]
[--extra-new-options-gucs -c ключ=значение]
[--extra-shared-libs=разделяемые_библиотеки]
{--magic-string=магическая_строка_старого_лидера | --magic-file=магический_файл_старого_лидера}
--new-leader-biha-port=порт_biha_нового_лидера
--new-leader-host=хост_нового_лидера
--new-leader-port=порт_нового_лидера
--new-pgdata=каталог_PGDATA_лидера_новой_версии
--old-bin=/путь/к/исполняемым/файлам/старой/версии
--old-pgdata=каталог_PGDATA_старой_версии
[--options=параметры_pg_upgrade]
[--username=имя_суперпользователя]
[--user-cert=/путь/к/сертификату_клиента --user-key=/путь/к/ключу_клиента \
[--ssl-mode=режим_ssl]]
[--root-cert=/путь/к/сертификату_цс --user-biha-cert=/путь/к/сертификату_клиента \
--user-biha-key=/путь/к/ключу_клиента [--biha-ssl-mode=режим_ssl]]
--subscriber-username=имя_пользователяЗапускает процесс миграции на основную версию для BiHA-кластера. За подробной информацией обратитесь к Подразделу 26.3.15.1.2.
Эта команда может принимать следующие параметры:
--convert#Преобразовывает существующего последователя в лидера с новой версией Postgres Pro Standard. При указании этого параметра не требуется указывать параметры --new-leader-biha-port, --new-leader-host и --new-leader-port.
--extra-new-options-gucs -c#ключ=значениеЗадаёт список разделённых запятыми дополнительных параметров конфигурации, направляемых в pg_upgrade
--new-options.--extra-shared-libs=#разделяемые_библиотекиЗадаёт разделяемые библиотеки для загрузки при выполнении pg_upgrade.
--magic-string=#магическая_строка_старого_лидераИспользует «магическую» строку, содержащую закодированные данные, для подключения к лидеру старого BiHA-кластера, т.е. кластера, для которого необходимо выполнить миграцию.
--magic-file=#магический_файл_старого_лидераЗадаёт путь к файлу, в котором хранится магическая строка, содержащая закодированные данные, для подключения к лидеру старого BiHA-кластера, т.е. кластера, для которого необходимо выполнить миграцию.
--new-leader-biha-port=#порт_biha_нового_лидераУказывает порт нового лидера для обмена служебной информацией между узлами.
--new-leader-host=#хост_нового_лидераУказывает хост нового лидера для входящих подключений.
--new-leader-port=#порт_нового_лидераУказывает порт нового лидера для входящих подключений.
--new-pgdata=#каталог_PGDATA_лидера_новой_версииУказывает каталог, где будет создан лидер нового кластера с новой версией Postgres Pro Standard в результате конвертации из последователя старой версии. Каталог должен быть пустым.
--old-bin=#/путь/к/исполняемым/файлам/старой/версииУказывает путь к исполняемым файлам старой версии Postgres Pro Standard.
--old-pgdata=#каталог_PGDATA_старой_версииУказывает каталог, в котором создаётся последователь со старой версией Postgres Pro Standard. Далее этот последователь будет обновлён и преобразован в лидера нового кластера с новой версией Postgres Pro Standard. Каталог должен быть пустым.
-opg_upgrade_options--options=#pg_upgrade_optionsУказывает дополнительные параметры pg_upgrade.
--ssl-mode=#режим_sslОпределяет политику аутентификации по SSL для --subscriber-username. Поддерживаются следующие режимы:
verify-full(по умолчанию)requireverify-ca
За подробной информацией о режимах обратитесь к sslmode.
--subscriber-username=#имя_пользователяУказывает имя пользователя для подключения pg_createsubscriber. У пользователя должны быть права на создание подписок и использование
pg_replication_origin_advance().--username=#имя_начального_суперпользователяЗадаёт имя начального суперпользователя. По умолчанию это имя пользователя ОС, запускающего
initdb. Используйте этот параметр в следующий случаях:При инициализации BiHA-кластера с нуля, если необходимо задать имя начального суперпользователя, отличное от
postgres.При преобразовании существующего узла, на котором имя начального суперпользователя отличается от
postgres.
Использование параметра
--usernameутилиты initdb не поддерживается.--user-cert=#/путь/к/сертификату_клиентаУказывает путь к SSL-сертификату для аутентификации --subscriber-username в формате PEM.
--user-key=#/путь/к/ключу_клиентаУказывает путь к закрытому ключу сертификата --user-cert в формате PEM.
upgrade move #
Синтаксис:
bihactl upgrade move --new-magic-string=магическая_строка_нового_лидера--new-pgdata=каталог_PGDATA_последователя_новой_версии--old-bin=/путь/к/исполняемым/файлам/старой/версии--old-pgdata=каталог_PGDATA_последователя_старой_версии
Перемещает последователя из старого BiHA-кластера в новый BiHA-кластер во время процедуры миграции на основную версию. За подробной информацией обратитесь к Подразделу 26.3.15.1.2.
Эта команда может принимать следующие параметры:
--new-magic-string=#магическая_строка_нового_лидераИспользует «магическую» строку, которая содержит закодированные данные для подключения к лидеру нового BiHA-кластера, т.е. кластера, обновлённого до новой основной версии. «Магическая» строка выводится в результате выполнения команды bihactl upgrade start.
--new-pgdata=#каталог_PGDATA_последователя_новой_версииУказывает каталог, куда будет перемещён последователь с новой версией Postgres Pro Standard. Каталог должен быть пустым.
--old-bin=#/путь/к/исполняемым/файлам/старой/версииУказывает путь к исполняемым файлам старой версии Postgres Pro Standard.
--old-pgdata=#каталог_PGDATA_старой_версииУказывает каталог, где в настоящий момент находится последователь со старой версией Postgres Pro Standard.
upgrade finish #
Синтаксис:
bihactl upgrade finish --new-magic-string=магическая_строка_нового_лидера[--username=имя_суперпользователя] [--user-cert=/путь/к/сертификату_клиента--user-key=/путь/к/ключу_клиента\ [--ssl-mode=режим_ssl]] --subscriber-username=имя_пользователя
Завершает процесс миграции на основную версию для BiHA-кластера. За подробной информацией обратитесь к Подразделу 26.3.15.1.2.
Эта команда может принимать следующие параметры:
--new-magic-string=#магическая_строка_нового_лидераИспользует «магическую» строку, которая содержит закодированные данные для подключения к лидеру нового BiHA-кластера, т.е. кластера, обновлённого до новой основной версии. «Магическая» строка выводится в результате выполнения команды bihactl upgrade start.
--ssl-mode=#режим_sslОпределяет политику аутентификации по SSL для --subscriber-username. Поддерживаются следующие режимы:
verify-full(по умолчанию)requireverify-ca
За подробной информацией о режимах обратитесь к sslmode.
--subscriber-username=#имя_пользователяУказывает имя пользователя для подключения pg_createsubscriber. У пользователя должны быть права на создание подписок и использование
pg_replication_origin_advance().--username=#имя_начального_суперпользователяЗадаёт имя начального суперпользователя. По умолчанию это имя пользователя ОС, запускающего
initdb. Используйте этот параметр в следующий случаях:При инициализации BiHA-кластера с нуля, если необходимо задать имя начального суперпользователя, отличное от
postgres.При преобразовании существующего узла, на котором имя начального суперпользователя отличается от
postgres.
Использование параметра
--usernameутилиты initdb не поддерживается.--user-cert=#/путь/к/сертификату_клиентаУказывает путь к SSL-сертификату для аутентификации --subscriber-username в формате PEM.
--user-key=#/путь/к/ключу_клиентаУказывает путь к закрытому ключу сертификата --user-cert в формате PEM.
Параметры аутентификации #
Параметры аутентификации можно использовать со следующими командами: bihactl cluster init, bihactl cluster show-config, bihactl cluster status, bihactl node add, bihactl node set front-follower, bihactl node set leader, bihactl segment add, bihactl segment set leader и bihactl unit set leader.
--biha-ssl-mode=#режим_sslОпределяет политику аутентификации по SSL для роли
biha_replication_user. Поддерживаются следующие режимы:verify-full(по умолчанию)requireverify-ca
За подробной информацией о режимах обратитесь к sslmode.
--root-cert=#/путь/к/сертификату_цсУказывает путь к сертификату доверенного ЦС в формате PEM.
--server-cert=#/путь/к/сертификату_сервераУказывает путь к SSL-сертификату для узла BiHA в формате PEM.
--server-key=#/путь/к/ключу_сервераУказывает путь к закрытому ключу сертификата --server-cert в формате PEM.
--user-biha-cert=#/путь/к/сертификату_клиентаУказывает путь к SSL-сертификату для аутентификации роли
biha_replication_userв формате PEM.--user-biha-key=#/путь/к/ключу_клиентаУказывает путь к закрытому ключу для сертификата --user-biha-cert в формате PEM.
Параметры подключения к лидеру #
Параметр --use-leader используется с командами bihactl node add и bihactl segment add.
Параметры --magic-file и --magic-string используются с командами bihactl cluster show-config, bihactl cluster status, bihactl node add, bihactl node set front-follower, bihactl node set leader, bihactl segment add, bihactl segment set leader и bihactl unit set leader.
-fфайл_с_магической_строкой--magic-file=#файл_с_магической_строкойУказывает путь к файлу, в котором хранится магическая строка с зашифрованными данными для подключения к узлу-лидеру. Если параметр используется с командой bihactl cluster init, сгенерированная строка сохраняется в указанном файле. С другими командами магическая строка из указанного файла используется для подключения к лидеру. На момент выполнения команд файл должен существовать.
-sмагическая_строка--magic-string=#магическая_строкаУказывает магическую строку, которая содержит зашифрованные данные для подключения к узлу-лидеру. Магическая строка генерируется в выводе команды bihactl cluster init и имеет следующий вид:
dmVyc2lvbj0xIGhvc3Q9bG9jYWxob3N0IHBvcnQ9NTQzMiBiaWhhLXBvcnQ9NTQzMw==
-lпараметры_подключения--use-leader=#параметры_подключенияУказывает параметры подключения к узлу-лидеру в следующем формате:
host=
хост_узла_лидераport=порт_лидераbiha-port=порт_biha_лидера
Сетевые параметры #
Параметры --biha-listen-addresses и --biha-port используются с командами bihactl cluster init, bihactl node add, bihactl cluster show-config и bihactl cluster status.
Параметры --biha-hosts, --sql-hosts, --replication-hosts и --pg-port используются с командами bihactl cluster init и bihactl node add.
--biha-hosts=#хостыИспользуется другими узлами для подключению к текущему узлу по внутреннему управляющему каналу (BCP), например, через прокси-сервер или туннель. Если значение
biha_hostsпустое, по умолчанию используется значение --biha-listen-addresses текущего узла.Возможные значения: один или несколько разделённых запятыми адресов в формате
hostname:port.port— необязательное значение, если порт не указан или задано значение-1, используется значение --biha-port текущего узла.Например:
biha-db-1:5433,biha-proxy:8081-Pпорт_biha--biha-port=#порт_bihaУказывает порт для обмена служебной информацией между узлами. Если порт не указан, устанавливается значение --pg-port + 1.
--biha-listen-addresses=#адресаОпределяет, на каких адресах открыты слушающие сокеты для внутреннего управляющего канала BCP.
Возможные значения: один или несколько разделённых запятыми адресов в формате
hostname:port.port— необязательное значение, если порт не указан или задано значение-1, используется значение --biha-port текущего узла.Например:
biha-db-1:5433,biha-proxy:8081-pпорт--pg-port=#портУказывает порт узла для входящих подключений к Postgres Pro.
Если не указан, bihactl использует значение по умолчанию — 5432.
--replication-hosts=#хосты_для_репликацииИспользуется другими узлами для подключения к текущему узлу по каналу репликации. Значение параметра --biha-listen-addresses должно включать
replication_hosts. Если значениеreplication_hostsпустое, по умолчанию используется значение --biha-listen-addresses текущего узла.Возможные значения: один или несколько разделённых запятыми адресов в формате
hostname:port.port— необязательное значение, если порт не указан или задано значение-1, используется значение --biha-port текущего узла.Максимальное значение строки 1024 байта, в противном случае параметр игнорируется.
Например:
biha-db-1:5433,biha-proxy:8081--sql-hosts=#хосты_для_sqlИспользуется другими узлами для выполнения SQL-запросов к текущему узлу. Если значение
sql_hostsпустое, по умолчанию используется значение --replication-hosts текущего узла.Возможные значения: один или несколько разделённых запятыми адресов в формате
hostname:port.port— необязательное значение, если порт не указан или задано значение-1, используется значение --biha-port текущего узла.Максимальное значение строки 1024 байта, в противном случае параметр игнорируется.
Например:
biha-db-1:5433,biha-proxy:8081