SQL Server 2012 (11.0.5058.0) Enterprise Edition
У нас есть 8 групп доступности в кластере 2 (HA) +1 (DR), и наши DMV мониторинга сообщают о результатах, которые меня смущают. 6 Группы доступности настроены для HA и DR, 1 настроен только для HA, а 1 настроен только для DR.
Каждая из 6 групп доступности HA / DR имеет «SQLB» в качестве основного и «SQLA» в качестве вторичной (синхронной) реплики HA и «SQLC» в качестве вторичной (асинхронной) реплики.
На обеих вторичных:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
сообщает , что здоровье всех групп доступности репликация синхронизирующих NOT_HEALTHY
и
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
сообщает, что все реплики имеют состояние синхронизации HEALTHY
.
Первичная реплика сообщает обо всех группах доступности и репликах с состоянием синхронизации HEALTHY
.
Хотя я понимаю, что в одном сообщается о работоспособности синхронизации реплики, а в других - о работоспособности синхронизации AG, мне кажется логичным, что если бы более детализированное (AG) состояние было не работоспособным, это могло бы повлиять на общее состояние более широкого контекста (реплики). , Я не могу найти документацию MSDN, которая описывает, как здоровье определяется на каждом уровне.
Почему подчиненные должны сообщать NOT_HEALTHY
о работоспособности синхронизации группы доступности, но HEALTHY
о работоспособности синхронизации реплики, и почему это отличается от отчета первичного сервера?
источник
NOT_HEALTHY
на вторичной реплике ASYNC?NOT_HEALTHY
на репликах SYNC и ASYNC.Ответы:
К сожалению, состояния sys.dm_hadr_availability_replica не являются надежным индикатором работоспособности реплик. Вот элемент Connect для одной из ошибок, с которыми мы столкнулись, когда DMV перестает обновляться. Обратите внимание, что в комментариях log_send_queue_size в DMV sys.dm_hadr_database_replica_states показывает 0, даже если есть данные журнала, которые нужно отправить.
Обратите внимание, что пункт «Подключить» помечен как «Не исправить». Грустный тромбон.
источник
sys.dm_hadr_availability_group_states.synchronization_health_desc
(что я понимаю, это отчеты о состоянии здоровья всей группы) отчетыNOT_HEALTHY
о вторичных, ноHEALTHY
о первичных (3 реплики). Документы описывают столбец как «сводный список synization_health всех реплик доступности в группе доступности». Это показывает несоответствие в системе, даже не смотря на sys.dm_hadr_availability_replica_states (который, предположительно, откуда данные свертываются).