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.

  1. Abra o Gerenciador de Cluster de Failover.

  2. Expanda seu cluster e selecione Funções.

  3. Clique com o botão direito do mouse na função AG e selecionePolíticas dePropriedades>.

  4. Defina o valor de Reinicializações máximas no período especificado como 0.

  5. 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.

  6. 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.

  1. Em SQL Server Management Studio, expanda SQL Server Agent, clique com o botão direito do mouse em Alertas e selecione Novo Alerta....

  2. 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.

  3. Selecione Resposta, marcar Executar trabalho, selecione o trabalho desejado e selecione OK.

  4. 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.

  5. 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.