No SQL Server 2019 desde a atualização cumulativa 9, há dois novos DMVs relacionados aos grupos de disponibilidade:
sys.dm_hadr_cached_replica_states
sys.dm_hadr_cached_database_replica_states
Eu descobri sobre eles em O que há de novo e não documentado na atualização cumulativa do SQL Server 2019 9 .
Aparentemente, as mesmas informações podem ser encontradas em outros DMVs existentes, mas esses novos DMVs podem retornar algumas informações desatualizadas (em cache) em vez dos dados em tempo real retornados pelos DMVs existentes.
As informações em sys.dm_hadr_cached_database_replica_states
são semelhantes às retornadas pela seguinte consulta:
SELECT ag.group_id AS ag_id, ag.name AS ag_name,
ar.replica_id, ar.replica_server_name AS replica_name,
adc.group_database_id AS ag_db_id, adc.database_name AS ag_db_name,
rs.is_local, rs.is_primary_replica, rs.synchronization_state, rs.synchronization_state_desc
FROM sys.dm_hadr_database_replica_states rs
INNER JOIN sys.availability_groups ag ON ag.group_id = rs.group_id
INNER JOIN sys.availability_replicas ar ON ar.replica_id = rs.replica_id
INNER JOIN sys.availability_databases_cluster adc ON adc.group_database_id = rs.group_database_id
A informação em sys.dm_hadr_cached_replica_states
é quase semelhante à retornada pela seguinte consulta:
SELECT ag.group_id AS ag_id, ag.name AS ag_name,
ar.replica_id, ar.replica_server_name AS replica_name,
ars.is_local, ar.availability_mode, ag.sequence_number,
ars.role, ars.role_desc, ars.synchronization_health, ars.synchronization_health_desc
FROM sys.availability_groups ag
INNER JOIN sys.availability_replicas ar ON ar.group_id = ag.group_id
INNER JOIN sys.dm_hadr_availability_replica_states ars ON ars.replica_id = ar.replica_id
No entanto, no meu caso, o novo DMV sempre retorna "PARTIALLY_HEALTHY" na synchronization_health_desc
coluna da função secundária em vez de "HEALTHY" ou "NOT_HEALTHY".
Alguém sabe qual é o propósito dos novos Detrans? Quando as informações do novo Detran são realmente atualizadas, considerando que a palavra "cache" está em seus nomes?
Acredito que as respostas a essas perguntas possam ficar mais claras após a conclusão da documentação do SQL Server 2022 (espero que esses novos DMVs sejam documentados lá). Mas talvez alguém tenha mais informações sobre esses DMVs e possa esclarecer mais sobre eles antes mesmo que isso aconteça.
É realmente em torno de dados em cache para que o DMV possa ser atingido com frequência sem incorrer em certos acertos de desempenho (pense em operações de orquestração e pesquisa). Não foi realmente feito para uso externo e provavelmente deve estar escondido nas versões do produto em caixa.