bihactl

bihactl — создать отказоустойчивый кластер в Postgres Pro

Синтаксис

bihactl add [параметры]

bihactl init [параметры]

bihactl status [параметры]

bihactl -V | --version

bihactl -? | --help

Описание

bihactl — это утилита, которая позволяет создавать отказоустойчивый кластер в Postgres Pro, а также управлять им и выполнять мониторинг его работы при помощи следующих команд:

  • bihactl init — инициализирует кластер и задаёт узел-лидер. При выполнении этой команды bihactl запускает утилиту initdb; на данном этапе также можно указать необходимые параметры этой утилиты при помощи флага -o.

  • bihactl add — добавляет узел-последователь к настроенному узлу-лидеру. При выполнении команды создаётся резервная копия узла-лидера при помощи pg_basebackup или pg_probackup. Утилиту резервного копирования можно задать с помощью параметра -m, а параметры выбранной утилиты можно указать при помощи параметра -O.

  • bihactl status — проверяет статус узлов кластера.

Узел-последователь можно добавить с использованием «‎‎магической» строки, сохранённой после выполнения команды bihactl init, передав в команде bihactl add параметр -s.

Справка по командной строке #

add #

Синтаксис:

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=магическая_строка

Использует «‎‎магическую» строку, содержащую закодированные данные, для подключения к узлу-лидеру.

init #

Синтаксис:

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=число_синхронных_ведомых_серверов]

Инициализировать кластер и задать узел-лидер. Эта команда может принимать следующие параметры:

-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.

status #

Синтаксис:

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=магическая_строка

Использует «‎‎магическую» строку, содержащую закодированные данные, для подключения к узлу-лидеру.

-V | --version #

Синтаксис:

bihactl -V
bihactl --version

Вывести текущую версию отказоустойчивого кластера.

-? | --help #

Синтаксис:

bihactl -?
bihactl --help

Вывести справку по параметрам командной строки.