bihactl — создать BiHA-кластер в Postgres Pro
bihactl add [параметры]
bihactl init [параметры]
bihactl status [параметры]
bihactl -V | --version
bihactl -? | --help
bihactl — это утилита командной строки, которая позволяет создать BiHA-кластер, изменять его состав, а также отслеживать статус и версию кластера. За подробной информацией о решении BiHA обратитесь к главе Встроенная отказоустойчивость (BiHA).
В этом разделе содержится информация о командах утилиты bihactl:
bihactl init инициализирует кластер и задаёт узел-лидер. При выполнении этой команды bihactl запускает утилиту initdb; на данном этапе также можно указать необходимые параметры этой утилиты при помощи флага -o.
bihactl add добавляет узел-последователь к настроенному узлу-лидеру. При выполнении команды создаётся резервная копия узла-лидера при помощи pg_basebackup или pg_probackup. Для выбора утилиты резервного копирования используется параметр -m, а параметры выбранной утилиты можно указать при помощи параметра -O.
bihactl status проверяет статус узлов кластера.
bihactl version проверяет текущую версию BiHA-кластера.
bihactl help выводит справку.
Узел-последователь можно добавить с использованием «магической» строки, сохранённой после выполнения команды bihactl init, передав в команде bihactl add параметр -s.
Не рекомендуется выполнять команды bihactl в каталоге PGDATA. Утилита bihactl может создавать файлы biha_init.log и biha_add.log в том каталоге, откуда запускается. Однако для корректного выполнения команд bihactl целевой каталог PGDATA должен быть пустым.
Синтаксис:
bihactl add [-c | --convert-standby]
[-D | --pgdata=каталог_данных]
[-f | --magic-file=файл_с_магической_строкой]
[-h | --host=адрес_узла]
[-I | --biha-node-id=id_узла]
[-l | --use-leader=параметры_подключения]
[-m | --backup-method=метод_резервирования]
[-O | --backup-options=параметры_резервирования]
[-p | --port=порт]
[-P | --biha-port=порт_biha]
[-r | --mode=режим_работы_узла]
[-s | --magic-string=магическая_строка]Добавить узел-последователь в инициализированный кластер. Эта команда может принимать следующие параметры:
-c--convert-standbyПреобразовывает существующий узел в узел-последователь отказоустойчивого кластера. Узел должен быть репликой узла-лидера до преобразования.
-D каталог_данных--pgdata=каталог_данныхУказывает каталог, где будет храниться кластер баз данных.
-f файл_с_магической_строкой--magic-file=файл_с_магической_строкойИспользует файл с «магической» строкой, содержащей закодированные данные, для подключения к узлу-лидеру.
-h адрес_узла--host=адрес_узлаУказывает адрес узла для входящих соединений.
-I id_узла--biha-node-id=id_узлаУказывает уникальный идентификатор узла.
-l параметры_подключения--use-leader=параметры_подключенияУказывает параметры подключения к узлу-лидеру в следующем формате:
host=адрес_узла_лидераport=порт_лидераbiha-port=порт_biha_лидера
-m метод_резервирования--backup-method=метод_резервированияУказывает утилиту резервного копирования. Допускаются значения pg_basebackup и pg_probackup. Значение по умолчанию — pg_basebackup, которое является единственным допустимым значением при добавлении узла-рефери.
-O параметры_резервирования--backup-options=параметры_резервированияДополнительно указывает параметры pg_basebackup или pg_probackup в зависимости от утилиты резервного копирования, заданной в параметре --backup-method.
-p порт--port=портУказывает порт узла для входящих соединений. Если порт не указан, он берётся из postgresql.conf или используется значение по умолчанию — 5432.
-P порт_biha--biha-port=порт_bihaУказывает порт для обмена служебной информацией между узлами. Если порт не указан, устанавливается значение .port + 1
-r режим_работы_узла--mode=режим_работы_узлаУказывает режим работы узла. Допустимы следующие значения:
regular — узел может быть как лидером, так и последователем. Это значение по умолчанию.
referee — узел только участвует в выборах лидера и не содержит пользовательских баз данных.
referee_with_wal — узел участвует в выборах лидера так же, как в режиме referee, и получает все файлы WAL от узла-лидера.
-s магическая_строка--magic-string=магическая_строкаИспользует «магическую» строку, содержащую закодированные данные, для подключения к узлу-лидеру.
Синтаксис:
bihactl init [-C | --convert]
[-D | --pgdata=каталог_данных]
[-f | --magic-file=файл_с_магической_строкой]
[-h | --host=адрес_узла]
[-I | --biha-node-id=id_узла]
[-M | --minnodes=мин_число_узлов]
[-N | --nquorum=значение_кворума]
[-o | --options=параметры_initdb]
[-p | --port=порт]
[-P | --biha-port=порт_biha]
[-S | --use-ssl]
[-Y | --sync-standbys=число_синхронных_ведомых_серверов]
[-y | --sync-standbys-min=мин_число_синхронных_ведомых_серверов]Инициализировать кластер и задать узел-лидер. Эта команда может принимать следующие параметры:
-C--convertПреобразовывает существующий узел в узел-лидер отказоустойчивого кластера.
-D каталог_данных--pgdata=каталог_данныхУказывает каталог, где будет храниться кластер баз данных.
-f файл_с_магической_строкой--magic-file=файл_с_магической_строкойИспользует файл с «магической» строкой, содержащей закодированные данные, для подключения к узлу-лидеру.
-h адрес_узла--host=адрес_узлаУказывает адрес узла для входящих соединений.
-I id_узла--biha-node-id=id_узлаУказывает уникальный идентификатор узла.
-M мин_число_узлов--minnodes=мин_число_узловУказывает минимальное число работающих узлов, при котором узел-лидер будет доступен для пишущих транзакций. Если параметр не задан, его значение будет равно значению параметра nquorum.
-N значение_кворума--nquorum=значение_кворумаУказывает число работающих узлов, участвующих в голосовании по выбору нового лидера. Рекомендуется задавать значение параметра больше половины числа узлов в кластере, чтобы узел-лидер мог быть избран простым большинством голосов. Например, если планируется создать кластер из 5 узлов, рекомендуется задавать значение кворума 3.
-o параметры_initdb--options=параметры_initdbДополнительно указывает параметры утилиты initdb.
-p порт--port=портУказывает порт узла для входящих соединений. Если порт не указан, он берётся из postgresql.conf или используется значение по умолчанию — 5432.
-P порт_biha--biha-port=порт_bihaУказывает порт для обмена служебной информацией между узлами. Если порт не указан, устанавливается значение .port + 1
-S--use-sslВключает защищённый режим передачи служебной информации между узлами кластера по протоколу SSL/TLS управляющего канала biha.
-Y число_синхронных_ведомых_серверов--sync-standbys=число_синхронных_ведомых_серверовУказывает число синхронных узлов-последователей для подключения к узлу-лидеру. Рекомендуется задавать значение этого параметра меньше значения параметра --minnodes.
-y мин_число_синхронных_ведомых_серверов--sync-standbys-min=мин_число_синхронных_ведомых_серверовЗадаёт минимальное число синхронных последователей, которые должны быть доступны, чтобы лидер продолжал работу. Значение должно быть меньше, чем --sync-standbys, и не может быть отрицательным. Если параметр не указан, BiHA-кластер работает в соответствии с ограничениями синхронной репликации по умолчанию, то есть лидер будет оставаться недоступным для операций на запись, пока все последователи не догонят его текущее состояние.
Синтаксис:
bihactl status [-f | --magic-file=файл_с_магической_строкой] [-h | --host=адрес_узла] [-p | --port=порт] [-s | --magic-string=магическая_строка]
Проверить статус узла. Эта команда может принимать следующие параметры:
-f файл_с_магической_строкой--magic-file=файл_с_магической_строкойИспользует файл с «магической» строкой, содержащей закодированные данные, для подключения к узлу-лидеру.
-h адрес_узла--host=адрес_узлаУказывает адрес узла для входящих соединений.
-p порт--port=портУказывает порт узла для входящих соединений. Если порт не указан, он берётся из postgresql.conf или используется значение по умолчанию — 5432.
-s магическая_строка--magic-string=магическая_строкаИспользует «магическую» строку, содержащую закодированные данные, для подключения к узлу-лидеру.
Синтаксис:
bihactl -V bihactl --version
Вывести текущую версию отказоустойчивого кластера.