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. |
[Inizio pagina]
Utilizzo di Transact-SQL
Per configurare i criteri di failover flessibili
Connettersi all'istanza del server che ospita la replica primaria.
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);
[Inizio pagina]
Utilizzo di PowerShell
Per configurare i criteri di failover flessibili
Impostare il valore predefinito (cd) sull'istanza del server che ospita la replica primaria.
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
[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)