GET_HEALTH_STATE
Содержание раздела
Поддерживается в версиях: 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_count
≥AUTOFAILOVER_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 |