GET_HEALTH_STATE

Содержание раздела
  1. Режимы запроса информации
  2. Поддерживаемые СУБД
  3. Связанные запросы
  4. Синтаксис
  5. Варианты ответа
    1. Ответ после запуска и перезапуска нод
    2. Пустой результат
    3. Параметры ответа
  6. Примеры
    1. Все датасорсы, кроме healthy
    2. Все датасорсы

Поддерживается в версиях: 7.4.

Запрос возвращает информацию о состоянии датасорсов по данным нод кластера. Информация доступна для ADP-датасорсов с настроенным и включенным механизмом auto-failover.

Режимы запроса информации

Доступные режимы запроса:

  • все датасорсы, кроме датасорсов в состоянии healthy;
  • все датасорсы.

Поддерживаемые СУБД

Запрос доступен для СУБД ADP.

Синтаксис

GET_HEALTH_STATE([show_healthy_boolean])

Параметры:

show_healthy_boolean

Флаг, управляющий выводом информации о датасорсах в состоянии healthy. Возможные значения:

  • false (по умолчанию) — возвращается информации по всем датасорсам, кроме healthy;
  • true — возвращается информации по всем датасорсам, включая healthy.

Варианты ответа

Успешный ответ содержит объект ResultSet, где каждая строка содержит информацию о датасорсе по сведениям одной ноды. Неуспешный ответ содержит исключение.

Ответ после запуска и перезапуска нод

После запуска или перезапуска нод и до истечения интервала AUTOFAILOVER_STARTUP_DELAY_MS ноды сообщают информацию только о датасорсах, вернувших хотя бы один успешный ответ при периодических проверках состояния; после истечения интервала — всю информацию.

Пустой результат

Пустой результат возвращается в следующих случаях:

  • все датасорсы находятся в состоянии healthy и исключены из ответа (так как флаг show_healthy_boolean в запросе отсутствует или имеет значение false);
  • ноды были запущены/перезапущены меньше AUTOFAILOVER_STARTUP_DELAY_MS назад, и ни один датасорс еще не вернул успешный ответ на запрос состояния;
  • нет датасорсов с настроенным и включенным механизмом auto-failover.

Параметры ответа

datasource

Имя датасорса.

state

Состояние датасорса по мнению кластера. Решение принимается лидером согласно мнению большинства нод (vote).

Возможные значения:

  • healthy — датасорс доступен физически;
  • not healthy — датасорс недоступен физически;
  • recovering — датасорс доступен физически и сейчас восстанавливается. При успешном восстановлении перейдет в состояние healthy, иначе останется в recovering;
  • disabling — датасорс недоступен физически и сейчас отключается. При успешном отключении перейдет в состояние not healthy, иначе останется в disabling;
  • null — состояние неизвестно, или механизм auto-failover выключен.
pnode_id

Идентификатор ноды кластера.

last_refuse

Дата и время последнего неуспешного ответа, полученного нодой pnode_id на запрос состояния датасорса.

Неуспешным ответом считается ответ с кодом ошибки, а также отсутствие ответа.

refuse_count

Количество неуспешных ответов, подряд полученных нодой pnode_id на запросы состояния датасорса.

Обнуляется при получении успешного ответа:

  • от датасорса, который по мнению ноды находится в состоянии healthy;
  • от датасорса, который по мнению ноды находится в состоянии not healthy, если количество его успешных ответов подряд достигло значения AUTOFAILOVER_HEALING_CONFIRM.

Неуспешным ответом считается ответ с кодом ошибки, а также отсутствие ответа; успешным — ответ с успешным кодом.

last_hello

Дата и время последнего успешного ответа, полученного нодой pnode_id на запрос состояния датасорса.

Успешным ответом считается ответ с успешным кодом.

hello_count

Количество успешных ответов, подряд полученных нодой pnode_id на запросы состояния датасорса. Обнуляется при неуспешном ответе датасорса.

Неуспешным ответом считается ответ с кодом ошибки, а также отсутствие ответа; успешным — ответ с успешным кодом.

vote

Состояние датасорса по мнению ноды pnode_id.

Возможные значения:

  • healthy — датасорс физически доступен. Нода меняет свое мнение на not healthy, если refuse_countAUTOFAILOVER_FAILS_LIMIT;
  • not healthy — датасорс физически недоступен. Нода меняет свое мнение на healthy, если refuse_count < AUTOFAILOVER_FAILS_LIMIT.

Примеры

Все датасорсы, кроме healthy

Запрос информации по датасорсам в любых состояниях, кроме healthy:

GET_HEALTH_STATE();

-- равнозначен запросу
GET_HEALTH_STATE(false);

Пример ответа показан в таблице ниже.

datasource state pnode_
id
last_refuse refuse_
count
last_hello hello_
count
vote
adp2 recovering 1 2025-06-06 15:51:25.000 0 2025-06-06 16:01:25.000 2 healthy
adp2 recovering 2 2025-06-06 15:52:25.000 0 2025-06-06 16:02:25.000 2 healthy
adp2 recovering 3 2025-06-06 16:03:25.000 3 2025-06-06 15:53:25.000 0 not healthy
adp3 not healthy 1 2025-06-06 16:01:35.000 20 2025-06-06 15:51:35.000 0 not healthy
adp3 not healthy 2 2025-06-06 16:02:35.000 20 2025-06-06 15:52:35.000 0 not healthy
adp3 not healthy 3 2025-06-06 15:53:35.000 0 2025-06-06 16:03:35.000 20 healthy

Все датасорсы

Запрос информации по всем датасорсам, включая датасорсы в состоянии healthy:

GET_HEALTH_STATE(true)

Пример ответа показан в таблице ниже.

datasource state pnode_
id
last_refuse refuse_
count
last_hello hello_
count
vote
adp1 healthy 1 2025-06-06 15:51:25.000 0 2025-06-06 16:01:25.000 2 healthy
adp1 healthy 2 2025-06-06 15:52:25.000 0 2025-06-06 16:02:25.000 2 healthy
adp1 healthy 3 2025-06-06 16:03:25.000 0 2025-06-06 16:03:15.000 12 healthy
adp2 recovering 1 2025-06-06 15:51:25.000 0 2025-06-06 16:01:25.000 2 healthy
adp2 recovering 2 2025-06-06 15:52:25.000 0 2025-06-06 16:02:25.000 2 healthy
adp2 recovering 3 2025-06-06 16:03:25.000 3 2025-06-06 15:53:25.000 0 not healthy
adp3 not healthy 1 2025-06-06 16:01:35.000 20 2025-06-06 15:51:35.000 0 not healthy
adp3 not healthy 2 2025-06-06 16:02:35.000 20 2025-06-06 15:52:35.000 0 not healthy
adp3 not healthy 3 2025-06-06 15:53:35.000 0 2025-06-06 16:03:35.000 20 healthy