Gostaria apenas de saber se existe alguma maneira de consultar quando o grupo AG falhou.
por exemplo - esta é a réplica primária agora, mas tenho certeza que era a secundária ontem? Como posso encontrar quando ocorreu o failover
existe algo específico nos logs que eu deveria estar procurando, ou existe um script tsql para usar?
Você pode usar o seguinte script do PowerShell para obter o último horário de failover
1641 é a identificação do evento no sistema de log de eventos do Windows que indica que uma função clusterizada foi movida de um nó para outro. A parte id=1641 faz com que o comando Get-WinEvent filtre apenas esses eventos.
A seguir lista o tempo de failover e a direção de cada banco de dados para todos os eventos de failover no servidor no qual ele é executado, usando T-SQL conforme solicitado.
Embora seja difícil descobrir quando ocorreu o último failover, você pode receber uma notificação (alerta) quando o failover ocorrer... (você pode pesquisar seu e-mail?)
Você pode criar um alerta para informar você (ou sua equipe) quando ocorreu um failover usando o número de erro 1480
Nota: Isso enviará um email para cada banco de dados no AG (em cada servidor), que no meu caso eram 12 bancos de dados em 2 servidores. Na guia de opções, você pode definir
Delay between responses:
algo como 1 minuto, para que apenas um e-mail por minuto seja enviado.Você pode configurar um script de monitoramento (ou uma solução de monitoramento de SQL de terceiros) para consultar as várias colunas da DMV sys.dm_hadr_availability_replica_states em uma programação regular (por exemplo, a cada 30 segundos) e colocar um carimbo de data/hora de quando você coletou os valores.
As colunas específicas de interesse relacionadas a eventos de failover são:
Colunas adicionais que valem a pena acompanhar:
Descrição mais detalhada para as colunas acima:
sys.dm_hadr_availability_replica_states (Transact-SQL)
Uma visão geral de todos os DMVs para Grupos de Disponibilidade AlwaysOn com links para mais detalhes está disponível no MSDN:
Monitorar grupos de disponibilidade (Transact-SQL)
Se o failover for bem-sucedido, os logs de eventos do Windows terão uma entrada
Este artigo do MS KB tem detalhes sobre a mensagem de erro e você pode usar o script do PowerShell para enviar emails com base em eventos específicos.
Além do log de eventos do Windows, você pode ver o Log de eventos estendido de diagnóstico de cluster com um formato semelhante a -
ServerName_InstanceName_SQLDIAG_*.xel
Este é o código que uso para determinar qual servidor é o nó primário e qual é o nó secundário. Eu uso isso em todos os trabalhos no meu servidor.
NOTA: isto é para um AOAG de 2 nós. Ajuste-o conforme necessário para lidar com AOAGs de vários servidores.