Share via


Configurar a política de failover flexível para controlar condições de failover automático (grupos de disponibilidade AlwaysOn)

Este tópico descreve como configurar a política de failover flexível para um grupo de disponibilidade AlwaysOn usando o Transact-SQL ou o PowerShell no SQL Server 2012. Uma política de failover flexível fornece o controle granular das condições que causam um failover automático para um grupo de disponibilidade. Ao alterar as condições de falha que disparam um failover automático e a frequência de verificações de integridade, você pode aumentar ou diminuir a probabilidade de um failover automático para oferecer suporte ao seu SLA para alta disponibilidade.

  • Antes de começar:

    Limitações sobre failovers automáticos

    Pré-requisitos

    Segurança

  • Para configurar a política de failover flexível, usando:

    Transact-SQL

    PowerShell

    ObservaçãoObservação

    A política de failover flexível de um grupo de disponibilidade não pode ser configurada usando o SQL Server Management Studio.

Antes de começar

Limitações sobre failovers automáticos

  • Para que um failover automático ocorra, a réplica primária e uma réplica secundária deverão ser configuradas para o modo de disponibilidade de confirmação síncrona com failover automático e a réplica secundária deverá ser sincronizada com a réplica primária.

  • Se um grupo de disponibilidade exceder seu limite de falha do WSFC, o cluster do WSFC não tentará um failover automático para o grupo de disponibilidade. Além disso, o grupo de recurso do WSFC do grupo de disponibilidade permanece em um estado com falha até o administrador de cluster manualmente colocar online o grupo de recursos com falha ou o administrador de banco de dados executar um failover manual do grupo de disponibilidade. O limite de falha do WSFC é definido como o número máximo de falhas com suporte para o grupo de disponibilidade durante um determinado período de tempo. O período de tempo padrão é seis horas e o valor padrão para o número máximo de falhas durante este período é n-1, onde n é o número de nós do WSFC. Para alterar os valores do limite de failover para um determinado grupo de disponibilidade, use o Console de Gerenciador de Failover WSFC.

Pré-requisitos

  • Você deve estar conectado à instância de servidor que hospeda a réplica primária.

Segurança

Permissões

Tarefa

Permissões

Para configurar a política de failover flexível para um novo grupo de disponibilidade

Requer a associação na função de servidor fixa sysadmin e a permissão de servidor CREATE AVAILABILITY GROUP, a permissão CONTROL AVAILABILITY GROUP, a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.

Para modificar a política de um grupo de disponibilidade existente

Requer a permissão ALTER AVAILABILITY GROUP no grupo de disponibilidade, a permissão CONTROL AVAILABILITY GROUP, a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.

Ícone de seta usado com o link Voltar ao Início[Início]

Usando Transact-SQL

Para configurar a política de failover flexível

  1. Conecte-se à instância de servidor que hospeda a réplica primária.

  2. Para um novo grupo de disponibilidade, use a instrução CREATE AVAILABILITY GROUP Transact-SQL. Se você estiver modificando um grupo de disponibilidade existente, use a instrução ALTER AVAILABILITY GROUP Transact-SQL.

    • Para definir o nível de condição de failover, use a opção FAILURE_CONDITION_LEVEL = n, na qual n é um número inteiro de 1 a 5.

      Por exemplo, a instrução Transact-SQL a seguir altera o nível da condição de falha de um grupo de disponibilidade existente, AG1, para o nível um:

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1); 
      

      A relação destes valores inteiros para os níveis de condição de falha é a seguinte:

      Valor Transact-SQL

      Nível

      Automático é o failover iniciado quando…

      1

      Um

      Em servidor inativo. O serviço SQL Server é interrompido devido a um failover ou a uma reinicialização.

      2

      Dois

      Em servidor sem resposta. Qualquer condição de valor inferior é atendida, o serviço SQL Server está conectado ao cluster e o tempo limite de verificação de integridade é excedido, ou a réplica primária atual está em um estado de falha.

      3

      Três

      Em erros críticos do servidor. Qualquer condição de valor inferior é atendida ou há um erro crítico de servidor interno.

      Este é o nível padrão.

      4

      Quatro

      Em erros moderados do servidor. Qualquer condição de valor inferior é atendida ou há um erro moderado de servidor.

      5

      Cinco

      Em qualquer condição de falha qualificada. Qualquer condição de valor inferior é atendida ou há uma condição de falha qualificada.

      Para obter mais informações sobre os níveis de condição de failover, consulte Política de failover flexível para failover automático de um grupo de disponibilidade (SQL Server).

    • Para configurar o tempo limite de verificação de integridade, use a opção HEALTH_CHECK_TIMEOUT = n, na qual n é um número inteiro de 15000 milissegundos (15 segundos) a 4294967295 milissegundos. O valor padrão é 30000 milissegundos (30 segundos).

      Por exemplo, a instrução Transact-SQL a seguir altera o limite de tempo limite de verificação de integridade de um grupo de disponibilidade existente, AG1, para 60.000 milissegundos (um minuto).

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
      

Ícone de seta usado com o link Voltar ao Início[Início]

Usando o PowerShell

Para configurar a política de failover flexível

  1. Defina o padrão (cd) para a instância de servidor que hospeda a réplica primária.

  2. Ao adicionar uma réplica de disponibilidade a um grupo de disponibilidade, use o cmdlet New-SqlAvailabilityGroup. Ao modificar uma réplica de disponibilidade existente, use o cmdlet Set-SqlAvailabilityGroup.

    • Para definir o nível de condição de failover, use o parâmetro FailureConditionLevel level, no qual level é um dos seguintes valores:

      Valor

      Nível

      Automático é failover iniciado quando…

      OnServerDown

      Um

      Em servidor inativo. O serviço SQL Server é interrompido devido a um failover ou a uma reinicialização.

      OnServerUnresponsive

      Dois

      Em servidor sem resposta. Qualquer condição de valor inferior é atendida, o serviço SQL Server está conectado ao cluster e o tempo limite de verificação de integridade é excedido, ou a réplica primária atual está em um estado de falha.

      OnCriticalServerError

      Três

      Em erros críticos do servidor. Qualquer condição de valor inferior é atendida ou há um erro crítico de servidor interno.

      Este é o nível padrão.

      OnModerateServerError

      Quatro

      Em erros moderados do servidor. Qualquer condição de valor inferior é atendida ou há um erro moderado de servidor.

      OnAnyQualifiedFailureConditions

      Cinco

      Em qualquer condição de falha qualificada. Qualquer condição de valor inferior é atendida ou há uma condição de falha qualificada.

      Para obter mais informações sobre os níveis de condição de failover, consulte Política de failover flexível para failover automático de um grupo de disponibilidade (SQL Server).

      Por exemplo, o comando a seguir altera o nível da condição de falha de um grupo de disponibilidade existente, AG1, para o nível um.

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` 
      -FailureConditionLevel OnServerDown
      
    • Para definir o tempo limite de verificação de integridade, use o parâmetro HealthCheckTimeout n, no qual n é um número inteiro de 15000 milissegundos (15 segundos) a 4294967295 milissegundos. O valor padrão é 30000 milissegundos (30 segundos).

      Por exemplo, o comando a seguir altera o tempo limite de verificação de integridade de um grupo de disponibilidade existente, AG1, para 120.000 milissegundos (dois minutos).

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      
ObservaçãoObservação

Para exibir a sintaxe de um cmdlet, use o cmdlet Get-Help no ambiente do SQL Server PowerShell. Para obter mais informações, consulte Obter Ajuda do SQL Server PowerShell.

Para configurar e usar o provedor do SQL Server PowerShell

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Referência

sp_server_diagnostics (Transact-SQL)

Conceitos

Visão geral de grupos de disponibilidade AlwaysOn (SQL Server)

Modos de disponibilidade (grupos de disponibilidade AlwaysOn)

Failover e modos de failover (grupos de disponibilidade AlwaysOn)

WSFC (Windows Server Failover Clustering) com o SQL Server

Política de failover para instâncias de cluster de failover