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 |