Configurare i criteri di failover flessibili per controllare le condizioni per il failover automatico (Gruppi di disponibilità AlwaysOn)

In questo argomento verrà descritto come configurare i criteri di failover flessibili per un gruppo di disponibilità AlwaysOn tramite Transact-SQL o PowerShell in SQL Server 2012. Con i criteri di failover flessibili viene garantito un controllo granulare delle condizioni che causano un failover automatico per un gruppo di disponibilità. Modificando le condizioni di errore che attivano un failover automatico e la frequenza di controlli di integrità, è possibile aumentare o diminuire la probabilità di un failover automatico per supportare il Contratto di servizio per la disponibilità elevata.

  • Prima di iniziare:

    Limitazioni sui failover automatici

    Prerequisiti

    Sicurezza

  • Per configurare i criteri di failover flessibili utilizzando:

    Transact-SQL

    PowerShell

    [!NOTA]

    Non è possibile configurare i criteri di failover flessibili di un gruppo di disponibilità tramite SQL Server Management Studio.

Prima di iniziare

Limitazioni sui failover automatici

  • Affinché si verifichi un failover automatico, la replica primaria corrente e una replica secondaria devono essere configurate per la modalità di disponibilità con commit sincrono e failover automatico e la replica secondaria deve essere sincronizzata con quella primaria.

  • Se un gruppo di disponibilità supera la relativa soglia di errore WSFC, non verrà effettuato il tentativo di failover automatico per il gruppo di disponibilità da parte del cluster WSFC. Inoltre, il gruppo di risorse WSFC del gruppo di disponibilità rimane in uno stato di errore finché l'amministratore del cluster non porterà manualmente online il gruppo di risorse con errori o l'amministratore del database non eseguirà un failover manuale del gruppo di disponibilità. La soglia di errore WSFC è definita come il numero massimo di errori supportati per il gruppo di disponibilità durante un determinato periodo di tempo. Il periodo di tempo predefinito è sei ore e il valore predefinito per il numero massimo di errori durante questo periodo è n-1, dove n è il numero di nodi WSFC. Per modificare i valori soglia dell'errore per un determinato gruppo di disponibilità, utilizzare la console di Gestione cluster di failover WSFC.

Prerequisiti

  • È necessario essere connessi all'istanza del server in cui è ospitata la replica primaria.

Sicurezza

Autorizzazioni

Attività

Autorizzazioni

Per configurare i criteri di failover flessibili per un nuovo gruppo di disponibilità

Sono necessarie l'appartenenza al ruolo predefinito del server sysadmin e l'autorizzazione server CREATE AVAILABILITY GROUP oppure l'autorizzazione ALTER ANY AVAILABILITY GROUP o CONTROL SERVER.

Per modificare i criteri di un gruppo di disponibilità esistente

È richiesta l'autorizzazione ALTER AVAILABILITY GROUP per il gruppo di disponibilità e l'autorizzazione CONTROL AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP o CONTROL SERVER.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Utilizzo di Transact-SQL

Per configurare i criteri di failover flessibili

  1. Connettersi all'istanza del server che ospita la replica primaria.

  2. Per un nuovo gruppo di disponibilità utilizzare l'istruzione CREATE AVAILABILITY GROUP Transact-SQL. Se si modifica un gruppo di disponibilità esistente, utilizzare l'istruzione ALTER AVAILABILITY GROUP Transact-SQL.

    • Per impostare il livello delle condizioni di failover, utilizzare l'opzione FAILURE_CONDITION_LEVEL = n dove n è un valore intero da 1 a 5.

      Ad esempio, tramite l'istruzione Transact-SQL seguente viene modificato il livello di condizione di errore di un gruppo di disponibilità esistente, AG1 al livello uno:

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1); 
      

      La relazione di questi valori interi con i livelli di condizione di errore è la seguente:

      Valore Transact-SQL

      Livello

      Il failover automatico viene avviato...

      1

      Uno

      In caso di server inaccessibile. Il servizio SQL Server viene arrestato a causa di un failover o un riavvio.

      2

      Due

      In caso di mancata risposta del server. Viene soddisfatta qualsiasi condizione con valore inferiore, il servizio SQL Server è connesso al cluster e viene superata la soglia di Timeout controllo integrità o la replica primaria corrente si trova in uno stato di errore.

      3

      Tre

      In caso di errori critici del server. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica un errore critico interno del server.

      Si tratta del livello predefinito.

      4

      Quattro

      In caso di errori con gravità moderata del server. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica un errore non critico del server.

      5

      Cinque

      In qualsiasi condizione di errore qualificata. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica una condizione di errore appropriata.

      Per ulteriori informazioni sui livelli delle condizioni di failover, vedere Criteri di failover flessibili per failover automatico di un gruppo di disponibilità (SQL Server).

    • Per configurare la soglia di Timeout controllo integrità, utilizzare l'opzione HEALTH_CHECK_TIMEOUT = n dove, n è un valore itero compreso tra 15000 millisecondi (15 secondi) e 4294967295 millisecondi. Il valore predefinito è 30000 millisecondi (30 secondi)

      Ad esempio, tramite l'istruzione Transact-SQL seguente viene modificata la soglia di Timeout controllo integrità di un gruppo di disponibilità esistente, AG1, a 60.000 millisecondi (un minuto).

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
      

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Utilizzo di PowerShell

Per configurare i criteri di failover flessibili

  1. Impostare il valore predefinito (cd) sull'istanza del server che ospita la replica primaria.

  2. Quando si aggiunge una replica di disponibilità a un gruppo di disponibilità, utilizzare il cmdlet New-SqlAvailabilityGroup. Quando si modifica una replica di disponibilità esistente, utilizzare il cmdlet Set-SqlAvailabilityGroup.

    • Per impostare il livello delle condizioni di failover, utilizzare il parametro FailureConditionLevel level dove level è uno dei valori seguenti:

      Valore

      Livello

      Il failover automatico viene avviato...

      OnServerDown

      Uno

      In caso di server inaccessibile. Il servizio SQL Server viene arrestato a causa di un failover o un riavvio.

      OnServerUnresponsive

      Due

      In caso di mancata risposta del server. Viene soddisfatta qualsiasi condizione con valore inferiore, il servizio SQL Server è connesso al cluster e viene superata la soglia di Timeout controllo integrità o la replica primaria corrente si trova in uno stato di errore.

      OnCriticalServerError

      Tre

      In caso di errori critici del server. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica un errore critico interno del server.

      Si tratta del livello predefinito.

      OnModerateServerError

      Quattro

      In caso di errori con gravità moderata del server. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica un errore non critico del server.

      OnAnyQualifiedFailureConditions

      Cinque

      In qualsiasi condizione di errore qualificata. Viene soddisfatta qualsiasi condizione di valore inferiore o si verifica una condizione di errore appropriata.

      Per ulteriori informazioni sui livelli delle condizioni di failover, vedere Criteri di failover flessibili per failover automatico di un gruppo di disponibilità (SQL Server).

      Ad esempio, tramite il comando seguente viene modificato il livello di condizione di errore di un gruppo di disponibilità esistente, AG1, al livello uno:

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` 
      -FailureConditionLevel OnServerDown
      
    • Per impostare la soglia di Timeout controllo integrità, utilizzare il parametro HealthCheckTimeout n dove n è un valore itero compreso tra 15000 millisecondi (15 secondi) e 4294967295 millisecondi. Il valore predefinito è 30000 millisecondi (30 secondi).

      Ad esempio, tramite il comando seguente viene modificata la soglia di Timeout controllo integrità di un gruppo di disponibilità esistente, AG1, a 120.000 millisecondi (due minuti).

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      

[!NOTA]

Per visualizzare la sintassi di un cmdlet, utilizzare il cmdlet Get-Help nell'ambiente PowerShell di SQL Server. Per ulteriori informazioni, vedere Visualizzazione della Guida di SQL Server PowerShell.

Per impostare e utilizzare il provider PowerShell per SQL Server

Icona freccia utilizzata con il collegamento Torna all'inizio[Torna all'inizio]

Vedere anche

Riferimento

sp_server_diagnostics (Transact-SQL)

Concetti

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)

Modalità di disponibilità (gruppi di disponibilità AlwaysOn)

Failover e modalità di failover (gruppi di disponibilità AlwaysOn)

WSFC (Windows Server Failover Clustering) con SQL Server

Criteri di failover per istanze del cluster di failover