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

Tramite i criteri di failover flessibili viene fornito 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.

Nota importanteImportante

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.

In questo argomento sono contenute le sezioni seguenti:

  • Soglia di Timeout controllo integrità

  • Livello delle condizioni di errore

  • Attività correlate

  • Contenuto correlato

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

Nota importanteImportante

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

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

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 delle condizioni 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.

Nota importanteImportante

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.

Livello

Condizione di errore

Valore Transact-SQL

Valore PowerShell

Uno

In caso di server inaccessibile. Specifica che viene avviato un failover automatico quando si verifica una delle condizioni seguenti:

  • Il servizio SQL Server non è attivo.

  • Il lease del gruppo di disponibilità per la connessione al cluster WSFC scade poiché non viene ricevuto alcun acknowledgement dall'istanza del server. Per ulteriori informazioni, vedere Funzionamento: timeout lease di SQL Server AlwaysOn.

Si tratta del livello meno restrittivo.

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 Timeout controllo integrità specificata dall'utente per il 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. 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.

Si tratta del livello più restrittivo.

5

OnAnyQualifiedFailureConditions

[!NOTA]

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

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

Attività correlate

Per configurare il failover automatico

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

Contenuto correlato

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

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