SQL Server 2012 (11.0.5058.0) Enterprise Edition
Temos 8 grupos de disponibilidade em um cluster 2 (HA) +1 (DR) e nossas DMVs de monitoramento estão relatando resultados que me confundem. 6 Grupos de disponibilidade são configurados para HA e DR, 1 está configurado apenas para HA e 1 está configurado apenas para DR.
Cada um dos 6 grupos de disponibilidade de HA / DR possui "SQLB" como primário e "SQLA" como réplica secundária de HA (síncrona) e "SQLC" como réplica secundária (assíncrona).
Nos dois secundários:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
relata que toda a integridade da sincronização de replicação do Grupo de Disponibilidade é NOT_HEALTHY
e
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
relata que todas as réplicas têm uma integridade de sincronização HEALTHY
.
A réplica primária relata todos os grupos de disponibilidade e réplicas com uma integridade de sincronização HEALTHY
.
Embora eu entenda que um relata a integridade da sincronização de réplicas e o outro relata a integridade da sincronização de AG, parece-me lógico que se o estado mais granular (AG) não fosse íntegro, isso afetaria a integridade geral do contexto mais amplo (réplica) . Não consigo encontrar a documentação do MSDN que descreve como a saúde é determinada em cada nível.
Por que os secundários NOT_HEALTHY
relatariam a integridade da sincronização do Grupo de Disponibilidade, mas HEALTHY
a integridade da sincronização de réplica, e por que isso difere do relatório da primária?
fonte
NOT_HEALTHY
apenas na réplica secundária do ASYNC?NOT_HEALTHY
nas réplicas SYNC e ASYNC.Respostas:
Infelizmente, os estados sys.dm_hadr_availability_replica não são um indicador confiável de integridade da réplica. Aqui está o item Connect em um dos erros nos quais encontramos o DMV para parar de atualizar - observe nos comentários que log_send_queue_size no DMV sys.dm_hadr_database_replica_states mostra 0 mesmo quando há dados de log a serem enviados.
Observe que o item Conectar está marcado como Não será corrigido. Trombone triste.
fonte
sys.dm_hadr_availability_group_states.synchronization_health_desc
(o que eu entendo é o relatório sobre a saúde de todo o grupo), reporta osNOT_HEALTHY
secundários, masHEALTHY
os primários (3 réplicas). Os documentos descrevem a coluna como "um pacote cumulativo de informações de sincronização de todas as réplicas de disponibilidade no grupo de disponibilidade". Isso mostra disparidade no sistema sem sequer olhar para sys.dm_hadr_availability_replica_states (que é, presumivelmente, de onde os dados estão sendo acumulados).