25.3. Справка по расширению BiHA #

Подавляющий объём работы BiHA происходит автоматически, лишь некоторые из параметров можно редактировать вручную.

25.3.1. Параметры конфигурации #

Полезные параметры конфигурации:

biha.can_be_leader (boolean) #

Определяет возможность узла стать лидером. Значение по умолчанию — true. Если задано значение false, узел не может предлагать себя в качестве кандидата на выборах лидера.

biha.can_vote (boolean) #

Определяет возможность узла голосовать. Значение по умолчанию — true. Если задать значение false, узел не сможет принимать участие в голосовании, а также не сможет предлагать себя в качестве кандидата в лидеры.

biha.flw_ro (boolean) #

Определяет доступность последователя для операций на чтение. Если задано значение off, чтение с этого последователя запрещено. Значение по умолчанию — on.

biha.heartbeat_max_lost (integer) #

Указывает максимальное число сообщений о контроле состояния, которые можно не получить до того, как узел будет считаться недоступным. Значение по умолчанию — 10.

biha.heartbeat_send_period (integer) #

Указывает частоту отправки сообщений о контроле состояния в миллисекундах. Значение по умолчанию — 1000.

25.3.2. Уровни протоколирования BiHA #

biha.BihaLog_log_level (enum) #

Задаёт уровень протоколирования для предоставления общей информации о работе компонентов BiHA. Значение по умолчанию — LOG.

biha.BcpTransportDebug_log_level (enum) #

Задаёт уровень протоколирования для предоставления отладочной информации о работе канала управления. Значение по умолчанию — DEBUG4.

biha.BcpTransportDetails_log_level (enum) #

Задаёт уровень протоколирования для предоставления подробной информации о работе канала управления. Значение по умолчанию — DEBUG4.

biha.BcpTransportLog_log_level (enum) #

Задаёт уровень протоколирования для предоставления общей информации о работе канала управления. Значение по умолчанию — DEBUG4.

biha.BcpTransportWarn_log_level (enum) #

Задаёт уровень протоколирования для вывода предупреждений о возможных проблемах в канале управления. Значение по умолчанию — DEBUG4.

biha.NodeControllerDebug_log_level (enum) #

Задаёт уровень протоколирования для предоставления отладочной информации о работе контроллера узла. Значение по умолчанию — DEBUG4.

biha.NodeControllerDetails_log_level (enum) #

Задаёт уровень протоколирования для предоставления подробной информации о работе контроллера узла. Значение по умолчанию — DEBUG4.

biha.NodeControllerLog_log_level (enum) #

Задаёт уровень протоколирования для предоставления общей информации о работе контроллера узла. Значение по умолчанию — DEBUG4.

biha.NodeControllerWarn_log_level (enum) #

Задаёт уровень протоколирования для вывода предупреждений о возможных проблемах в контроллере узла. Значение по умолчанию — DEBUG4.

25.3.3. Функции #

Все перечисленные ниже функции следует вызывать из базы данных biha_db:

biha.error_details () returns setof record #

Возвращает описание причины, по которой узел перешёл в состояние NODE_ERROR. Возвращаемая запись содержит тип ошибки, подробную информацию о ней, место возникновения с указанием begin_lsn, end_lsn и идентификаторов текущей и следующей линии времени, а также replay_lsn.

biha.nodes () returns setof record #

Определяет представление biha.nodes_v, подробно описанное в biha.nodes_v.

biha.status () returns setof record #

Определяет представление biha.status_v, подробно описанное в biha.status_v. Если узел не отвечает при попытке показать представление, попробуйте выполнить тот же запрос на любом другом узле, чтобы узнать фактическое состояние узлов кластера.

25.3.4. Представления #

Чтобы обращаться к перечисленным ниже представлениям, необходимо подключиться к базе данных biha_db.

25.3.4.1. biha.nodes_v #

В этом представлении показывается состояние подключения узлов в кластере. Для узла, на котором выполняется запрос для представления, следующие столбцы содержат NULL: state, since_conn_start, conn_count.

Таблица 25.1. Представление biha.nodes_v

Имя столбцаОписание
idИдентификатор узла.
hostАдрес узла.
portПорт узла.
stateСостояние подключения узла. В этом столбце может отображаться одно из следующих значений: ACTIVE, CONNECTING, IDLE или INIT.
since_conn_startВремя, прошедшее с момента подключения узла к сети.
conn_countСколько раз узел подключался к сети с момента запуска кластера.

25.3.4.2. biha.status_v #

В этом представлении показывается состояние узлов в кластере.

Таблица 25.2. Представление biha.status_v

Имя столбцаОписание
idИдентификатор узла.
leader_idИдентификатор узла-лидера.
termПоколение узла. Используется при голосовании по выбору нового узла-лидера.
onlineПоказывает подключён ли узел к сети.
state

Состояние узла. В этом столбце может отображаться одно из следующих значений:

  • PRESTARTUP — начальное состояние узла при запуске BiHA-кластера. Узел отправляет сообщения о контроле состояния и запускает pg_rewind, если это было запланировано. В других случаях узел переходит в состояние STARTUP.

  • STARTUP — узел ожидает, пока процесс запуска Postgres Pro Shardman достигнет точки согласованности.

  • CSTATE_FORMING — узел получает и отправляет сообщения о контроле состояния, чтобы определить, в какое состояние он должен перейти.

  • LEADER_RO — узел является лидером, доступным только для операций чтения.

  • LEADER_RW — узел является лидером, доступным для операций на чтение и запись.

  • FOLLOWER — узел является последователем, т.е. репликой лидера. Если biha.can_be_leader и biha.can_vote имеют значение true, последователь может быть избран новым лидером.

  • FOLLOWER_OFFERED — узел был вручную назначен новым лидером.

  • CANDIDATE — узел предложил себя в качестве кандидата на выборах нового лидера.

  • REFEREE — узел является рефери кластера. Это единое состояние для режимов referee и referee_with_wal.

  • NODE_ERROR — узел в нерабочем состоянии из-за ошибки. Когда узел в состоянии NODE_ERROR, чтение с этого узла запрещено. Чтобы получить больше информации об ошибке, используйте функцию biha.error_details. Чтобы восстановить дефектный узел, см. Подраздел 25.2.3.

  • UNKNOWN — узел недоступен для текущего узла.

last_known_stateПоследнее известное состояние узла.
since_last_hbВремя, прошедшее с момента получения последнего сообщения о контроле состояния.