Condividi tramite


Criteri di failover flessibili per failover automatico di un gruppo di disponibilità (SQL Server)

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.

I criteri di failover flessibili di un gruppo di disponibilità vengono definiti in base al relativo livello delle condizioni di errore e alla soglia di Timeout controllo integrità. Quando viene rilevato che un gruppo di disponibilità ha superato il livello di condizione di errore o la soglia di Timeout controllo integrità, la DLL risorse del gruppo di disponibilità risponde al cluster WSFC (Windows Server Failover Clustering). Tramite il cluster WSFC viene quindi iniziato un failover automatico alla replica secondaria.

Importante

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à rimarrà 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.

Soglia di Timeout controllo integrità

La DLL risorse di WSFC del gruppo di disponibilità esegue un controllo di integrità della replica primaria chiamando la stored procedure sp_server_diagnostics sull'istanza di SQL Server che ospita la replica primaria. sp_server_diagnostics restituisce i risultati in un intervallo uguale a 1/3 della soglia di timeout controllo integrità per il gruppo di disponibilità. La soglia di timeout controllo integrità predefinita è 30 secondi, in base alla quale i risultati di sp_server_diagnostics vengono restituiti a intervalli di 10 secondi. Se la stored procedure sp_server_diagnostics risulta lenta o non restituisce informazioni, la DLL risorse attenderà per l'intero intervallo della soglia di timeout controllo integrità prima di determinare che la replica primaria non risponde. Se la replica primaria non risponde, viene avviato un failover automatico, se è attualmente supportato.

Importante

sp_server_diagnostics non esegue controlli di integrità a livello di database.

Livello delle condizioni di errore

La possibilità che i dati di diagnostica e le informazioni sull'integrità restituiti da sp_server_diagnostics assicurino un failover automatico dipende dal livello di condizione di errore del gruppo di disponibilità. Il livello di condizione di errore specifica quale condizione di errore attiverà un failover automatico. I livelli delle condizioni di errore sono 5 e vanno dal livello meno restrittivo (livello 1), al livello più restrittivo (livello 5). Un dato livello di condizione include tutti i livelli meno restrittivi. Il livello più restrittivo, il livello 5, include le quattro condizioni meno restrittive e così via.

Importante

I database danneggiati e quelli sospetti non vengono rilevati da alcun livello della condizione di errore. Pertanto, di un database danneggiato o sospetto, per un errore hardware, un danneggiamento dati o per altro problema, non viene mai attivato un failover automatico.

Nella tabella seguente vengono descritte le condizioni di errore corrispondenti a ciascun livello.

Level Condizione di errore Valore Transact-SQL Valore PowerShell
Uno In caso di server inaccessibile. Si tratta del livello meno restrittivo. Specifica che viene avviato un failover automatico quando si verifica una delle condizioni seguenti:

Indisponibilità del servizio SQL Server.

Il lease del gruppo di disponibilità per la connessione al cluster WSFC scade poiché non viene ricevuto alcun acknowledgement dall'istanza del server. Per altre informazioni, vedere Funzionamento: timeout lease di SQL Server AlwaysOn.
1 OnServerDown
Due In caso di mancata risposta del server. Specifica che viene avviato un failover automatico quando si verifica una delle condizioni seguenti:

L'istanza di SQL Server non si connette al cluster e viene superata la soglia del timeout di controllo integrità specificata dall'utente del gruppo di disponibilità.

La replica di disponibilità si trova in uno stato di errore.
2 OnServerUnresponsive
Tre In caso di errori critici del server. Specifica che viene avviato un failover automatico in caso di errori interni di SQL Server critici, ad esempio spinlock orfani, gravi violazioni dell'accesso in scrittura o dumping eccessivo. Si tratta del livello predefinito. 3 OnCriticalServerError
Quattro In caso di errori con gravità moderata del server. Specifica che viene avviato un failover automatico in caso di errori interni di SQL Server con gravità moderata, ad esempio una condizione persistente di memoria insufficiente nel pool di risorse interno di SQL Server. 4 OnModerateServerError
Cinque In qualsiasi condizione di errore qualificata. Si tratta del livello più restrittivo. Specifica che viene avviato un failover automatico in caso di qualsiasi condizione di errore qualificata, tra cui:

Esaurimento dei thread di lavoro del motore SQL.

Rilevamento di un deadlock irrisolvibile.
5 OnAnyQualifiedFailureConditions

Nota

La mancata risposta da parte di un'istanza di SQL Server alle richieste client non è rilevante per gruppi di disponibilità.

Attività correlate

To configure automatic failover

Contenuto correlato

Vedere anche

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
Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)