SQL Server 2012 (11.0.5058.0) Edición Enterprise
Tenemos 8 grupos de disponibilidad en un clúster 2 (HA) +1 (DR) y nuestros DMV de monitoreo informan resultados que me confunden. 6 Grupos de disponibilidad están configurados para HA y DR, 1 está configurado para HA solamente y 1 está configurado para DR solamente.
Cada uno de los 6 grupos de disponibilidad HA / DR tiene "SQLB" como primario y "SQLA" como una réplica secundaria (síncrona) HA y "SQLC" como una réplica secundaria (asíncrona).
En ambas secundarias:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
informes de que la salud de todo grupo de disponibilidad de la replicación de sincronización son NOT_HEALTHY
y
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
informa que todas las réplicas tienen un estado de sincronización de HEALTHY
.
La réplica principal informa todos los Grupos de disponibilidad y réplicas con un estado de sincronización de HEALTHY
.
Si bien entiendo que uno informa sobre el estado de sincronización de la réplica y los otros informes sobre el estado de sincronización de AG, me parece lógico que si el estado más granular (AG) no fuera saludable, eso afectaría el estado general del contexto más amplio (réplica) . No puedo encontrar documentación de MSDN que describa cómo se determina el estado en cada nivel.
¿Por qué los secundarios informarían NOT_HEALTHY
sobre el estado de sincronización del grupo de disponibilidad, pero HEALTHY
para el estado de sincronización de la réplica, y por qué esto difiere del informe del primario?
fuente
NOT_HEALTHY
en la réplica secundaria ASYNC?NOT_HEALTHY
en las réplicas SYNC y ASYNC.Respuestas:
Lamentablemente, los estados sys.dm_hadr_availability_replica no son un indicador confiable de la salud de la réplica. Aquí está el elemento Conectar en uno de los errores con los que nos hemos encontrado donde el DMV deja de actualizarse: tenga en cuenta en los comentarios que log_send_queue_size en el DMV sys.dm_hadr_database_replica_states muestra 0 incluso cuando hay datos de registro para enviar.
Tenga en cuenta que el elemento Connect está marcado como No se solucionará. Triste trombón.
fuente
sys.dm_hadr_availability_group_states.synchronization_health_desc
(lo que entiendo es informar sobre la salud de todo el grupo) informaNOT_HEALTHY
sobre secundarias, peroHEALTHY
sobre la primaria (3 réplicas). Los documentos describen la columna como "un resumen de la salud de sincronización de todas las réplicas de disponibilidad en el grupo de disponibilidad". Esto muestra disparidad dentro del sistema sin siquiera mirar sys.dm_hadr_availability_replica_states (que es, presumiblemente, desde donde se están acumulando los datos).