Como configurar um grupo de disponibilidade Always On para executar um failover quando o arquivo de dados do banco de dados não estiver disponível
Resumo
Em um grupo de disponibilidade Always On do SQL Server, a detecção de integridade no nível do banco de dados só poderá executar um failover se o erro (falha de disco ou similar) ocorrer no log de transações do banco de dados.
Se o erro ocorrer no arquivo de dados, o SQL Server enviará apenas o aviso de falha para um WSFC (Cluster de Failover do Windows Server) e contará com ele para tomar a decisão correta com base na configuração da política.
Para configurar um grupo de disponibilidade Always On para executar um failover quando ocorrerem erros 823 e outros , use um dos seguintes procedimentos:
Configurar o Gerenciador de Cluster de Failover
Este procedimento configura a política WSFC para causar um failover para um dos possíveis proprietários em vez de tentar reiniciar a função no nó primário atual.
Abra o Gerenciador de Cluster de Failover.
Expanda o cluster e selecione Funções.
Clique com o botão direito do mouse na função AG e selecione Políticas de Propriedades>.
Defina o valor de Máximo de reinicializações no período especificado como 0.
Marque a caixa Se todas as tentativas de reinicialização falharem, comece a reiniciar novamente após o período especificado (hh:mm) e selecione OK.
Certifique-se de que ambos os nós sejam Possíveis proprietários e proprietários preferenciais.
Opção de configuração personalizada
Este procedimento fornece um exemplo de como utilizar o mecanismo de alerta disponível no SQL Server e no SQL Server Agent para detectar o erro e executar um failover.
No SQL Server Management Studio, expanda SQL Server Agent, clique com o botão direito do mouse em Alertas e selecione Novo Alerta....
Especifique um valor para Nome, selecione Alerta de evento do SQL Server para Tipo, especifique o valor de Número do erro como 823 ou qualquer outro erro desejado de acordo com a lista e selecione OK.
Selecione Resposta, marque Executar trabalho, selecione o trabalho desejado e selecione OK.
Na caixa de diálogo Propriedades da Etapa de Trabalho, especifique um valor para Nome da etapa, selecione Sistema operacional (CmdExec) para Tipo e, em seguida, selecione Conta de Serviço do SQL Server Agent para Executar como.
Insira o seguinte comando failover sqlcmd:
sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"
Observação
<SecondaryReplicaName>
,<YourPassword>
e<AGName>
são espaços reservados. Você precisa alterá-lo para corresponder aos seus ambientes. Este script é um exemplo para referência. Um script completo deve executar outras verificações antes de executar um failover.