Como configurar um grupo de disponibilidade Always On para executar um failover quando o arquivo de dados de banco de dados não estiver disponível
Resumo
Em um grupo de disponibilidade SQL Server Always On, a detecção de integridade no nível do banco de dados só poderá executar um failover se o erro (falha de disco ou semelhante) ocorrer no log de transações do banco de dados.
Se o erro acontecer no arquivo de dados, SQL Server apenas enviará o aviso de falha para um WSFC (Cluster de Failover do Windows Server) e dependerá dele para tomar a decisão certa 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
Esse procedimento configura a política WSFC para causar um failover a 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 seu cluster e selecione Funções.
Clique com o botão direito do mouse na função AG e selecionePolíticas dePropriedades>.
Defina o valor de Reinicializações máximas 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.
Verifique se os dois nós são Proprietários Possíveis e proprietários preferenciais.
Opção de configuração personalizada
Este procedimento fornece um exemplo de como utilizar o mecanismo de alerta disponível em SQL Server e SQL Server Agent para detectar o erro e executar um failover.
Em 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 SQL Server alerta de evento para Tipo, especifique o valor do número de erro para 823 ou qualquer outro erro desejado de acordo com a lista e selecione OK.
Selecione Resposta, marcar Executar trabalho, selecione o trabalho desejado e selecione OK.
Na caixa de diálogo Propriedades da Etapa de Trabalho, especifique um valor para o nome da etapa, selecione Sistema operacional (CmdExec) para Tipo e selecione SQL Server Agent Conta de Serviço para Executar como.
Insira o seguinte comando sqlcmd de failover:
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.