¿Por qué estos dos DMV de HADR informan estados diferentes?


8

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_HEALTHYy

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_HEALTHYsobre el estado de sincronización del grupo de disponibilidad, pero HEALTHYpara el estado de sincronización de la réplica, y por qué esto difiere del informe del primario?


¿Puede confirmar que está viendo solo NOT_HEALTHYen la réplica secundaria ASYNC?
Kin Shah

Estoy viendo NOT_HEALTHYen las réplicas SYNC y ASYNC.
swasheck

Respuestas:


5

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.


El enlace llega a una página que dice que MS Connect se retiró. Estas preguntas y respuestas fueron en 2015. Han pasado cuatro años. Estoy aquí porque veo lo mismo que el OP. Supongo que querían decir que "no se solucionará". Eso es un poco cojo. Por otro lado, ¿alguien conoce un buen script para informar el estado y la configuración de AG, desde el grupo hasta la réplica y el nivel de sincronización de la base de datos?
youcantryreachingme

PD. Para mí, sys.dm_hadr_availability_group_states.synchronization_health_desc(lo que entiendo es informar sobre la salud de todo el grupo) informa NOT_HEALTHYsobre secundarias, pero HEALTHYsobre 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).
youcantryreachingme

@youcantryreachingme esa es una pregunta diferente: su mejor opción sería comenzar una nueva pregunta.
Brent Ozar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.