Criteri di failover per istanze del cluster di failoverFailover Policy for Failover Cluster Instances

In un'istanza del cluster di failover (FCI, Failover Cluster Instance) di SQL ServerSQL Server , solo un nodo può possedere il gruppo di risorse del cluster WSFC (Windows Server Failover Cluster) a un'ora specificata.In a SQL ServerSQL Server failover cluster instance (FCI), only one node can own the Windows Server Failover Cluster (WSFC) cluster resource group at a given time. Le richieste del client vengono servite tramite questo nodo nell'istanza FCI.The client requests are served through this node in the FCI. In caso di errore e riavvio non eseguito, la proprietà del gruppo viene spostata in un altro nodo WSFC nell'istanza FCI.In the case of a failure and an unsuccessful restart, the group ownership is moved to another WSFC node in the FCI. Questo processo viene chiamato failover.This process is called failover. SQL Server 2017SQL Server 2017 aumenta l'affidabilità di rilevamento dell'errore e offre criteri di failover flessibili. increases the reliability of failure detection and provides a flexible failover policy.

Un'istanza FCI di SQL ServerSQL Server dipende dal servizio WSFC sottostante per il rilevamento del failover.A SQL ServerSQL Server FCI depends on the underlying WSFC service for failover detection. Pertanto, due meccanismi determinano il comportamento del failover per l'istanza FCI: la prima è la funzionalità di WSFC nativa e la seconda è la funzionalità aggiunta dall'installazione di SQL ServerSQL Server .Therefore, two mechanisms determine the failover behavior for FCI: the former is native WSFC functionality, and the latter is functionality added by SQL ServerSQL Server setup.

  • Il cluster WSFC gestisce la configurazione del quorum che assicura una destinazione del failover univoca in un failover automatico.The WSFC cluster maintains the quorum configuration, which ensures a unique failover target in an automatic failover. Il servizio WSFC determina se il cluster è sempre nell'integrità del quorum ottimale e porta di conseguenza il gruppo di risorse online e offline.The WSFC service determines whether the cluster is in optimal quorum health at all times and brings the resource group online and offline accordingly.

  • L'istanza SQL ServerSQL Server attiva riporta periodicamente un set di diagnostica del componente al gruppo di risorse WSFC su una connessione dedicata.The active SQL ServerSQL Server instance periodically reports a set of component diagnostics to the WSFC resource group over a dedicated connection. Il gruppo di risorse WSFC gestisce i criteri del failover che definiscono le condizioni di errore che attivano operazioni di riavvio e failover.The WSFC resource group maintains the failover policy, which defines the failure conditions that trigger restarts and failovers.

    In questo argomento viene illustrato il secondo meccanismo.This topic discusses the second mechanism above. Per altre informazioni sul comportamento di WSFC per la configurazione del quorum e il rilevamento dell'integrità, vedere Modalità quorum WSFC e configurazione del voto (SQL Server).For more information on the WSFC behavior for quorum configuration and health detection, see WSFC Quorum Modes and Voting Configuration (SQL Server).

Importante

I failover automatici da e verso un'istanza FCI non sono consentiti in un gruppo di disponibilità AlwaysOn.Automatic failovers to and from an FCI are not allowed in an Always On availability group. Tuttavia, i failover manuali da e verso un'istanza FCI sono consentiti in un gruppo di disponibilità AlwaysOn.However, manual failovers to and from and FCI are allowed in an Always On availability group.

Panoramica dei criteri di failover Failover Policy Overview

Il processo del failover si può essere suddiviso nei passaggi indicati di seguito.The failover process can be broken down into the following steps:

  1. Monitoraggio dello stato di integritàMonitor the Health Status

  2. Determinazione di erroriDetermining Failures

  3. Risposta agli erroriResponding to Failures

Monitoraggio dello stato di integrità Monitor the Health Status

Tre sono i tipi di stato di integrità che vengono monitorati per l'istanza FCI:There are three types of health statuses that are monitored for the FCI:

Stato del servizio SQL Server State of the SQL Server service

Il servizio WSFC esegue il monitoraggio lo stato iniziale del servizio SQL Server sul nodo FCI attivo per rilevare quando viene arrestato il servizio SQL Server.The WSFC service monitors the start state of the SQL Server service on the active FCI node to detect when the SQL Server service is stopped.

Velocità di risposta dell'istanza di SQL Server Responsiveness of the SQL Server instance

Durante l'avvio di SQL Server, il servizio WSFC utilizza la DLL risorse del motore di database di SQL Server per creare una nuova connessione a un thread separato utilizzata esclusivamente per il monitoraggio dello stato di integrità.During SQL Server startup, the WSFC service uses the SQL Server Database Engine resource DLL to create a new connection to on a separate thread that is used exclusively for monitoring the health status. In tal modo si assicura che l'istanza di SQL disponga delle risorse richieste per restituire lo stato di integrità durante il caricamento.This ensures that there the SQL instance has the required resources to report its health status while under load. Tramite questa connessione dedicata, SQL Server esegue la stored procedure di sistema sp_server_diagnostics (Transact-SQL) in modalità ripetizione per restituire periodicamente lo stato di integrità dei componenti di SQL Server per la DLL risorse.Using this dedicated connection, SQL Server runs the sp_server_diagnostics (Transact-SQL) system stored procedure in repeat mode to periodically report the health status of the SQL Server components to the resource DLL.

La DLL risorse determina la velocità di risposta dell'istanza di SQL utilizzando un timeout di controllo integrità.The resource DLL determines the responsiveness of the SQL instance using a health check timeout. La proprietà HealthCheckTimeout consente di definire il tempo di attesa della DLL risorse per la stored procedure sp_server_diagnostics prima che venga stabilita la mancata risposta da parte dell'istanza di SQL al servizio WSFC.The HealthCheckTimeout property defines how long the resource DLL should wait for the sp_server_diagnostics stored procedure before it reports the SQL instance as unresponsive to the WSFC service. Questa proprietà è configurabile utilizzando T-SQL così come nello snap-in Gestione cluster di failover.This property is configurable using T-SQL as well as in the Failover Cluster Manager snap-in. Per altre informazioni, vedere Configurazione delle impostazioni HealthCheckTimeout.For more information, see Configure HealthCheckTimeout Property Settings. Di seguito viene descritta l'influenza di questa proprietà sulle impostazioni del timeout e dell'intervallo di ripetizione:The following items describe how this property affects timeout and repeat interval settings:

  • Tramite la DLL risorse viene chiamata la stored procedure sp_server_diagnostics e impostato l'intervallo di ripetizione su un terzo dell'impostazione HealthCheckTimeout.The resource DLL calls the sp_server_diagnostics stored procedure and sets the repeat interval to one-third of the HealthCheckTimeout setting.

  • Se la stored procedure sp_server_diagnostics è lenta o non consente la restituzione di informazioni, tramite la DLL risorse si attenderà l'intervallo specificato da HealthCheckTimeout, prima di restituire al servizio WSFC la mancata risposta da parte dell'istanza SQL.If the sp_server_diagnostics stored procedure is slow or is not returning information, the resource DLL will wait for the interval specified by HealthCheckTimeout before it reports to the WSFC service that the SQL instance is unresponsive.

  • Se la connessione dedicata viene persa, la DLL risorse ritenterà la connessione all'istanza di SQL per il tempo specificato da HealthCheckTimeout prima che riporti al servizio WSFC che l'istanza SQL non risponde.If the dedicated connection is lost, the resource DLL will retry the connection to the SQL instance for the interval specified by HealthCheckTimeout before it reports to the WSFC service that the SQL instance is unresponsive.

Diagnostica dei componenti di SQL Server SQL Server component diagnostics

La stored procedure di sistema sp_server_diagnostics raccoglie periodicamente i dati di diagnostica dei componenti sull'istanza di SQL.The system stored procedure sp_server_diagnostics periodically collects component diagnostics on the SQL instance. Le informazioni diagnostiche raccolte vengono visualizzate in una riga per ognuno dei componenti seguenti e passate al thread chiamante.The diagnostic information that is collected is surfaced as a row for each of the following components and passed to the calling thread.

  1. sistemasystem

  2. resourceresource

  3. processo queryquery process

  4. io_subsystemio_subsystem

  5. eventievents

    I componenti system, resource e query process vengono utilizzati per il rilevamento di errori.The system, resource, and query process components are used for failure detection. I componenti io_subsytem ed events vengono utilizzati solo per scopi diagnostici.The io_subsytem and events components are used for diagnostic purposes only.

    Ogni set di righe di informazioni viene scritto anche nel log di diagnostica dei cluster di SQL Server.Each rowset of information is also written to the SQL Server cluster diagnostics log. Per altre informazioni, vedere Visualizzazione e lettura del log di diagnostica dell'istanza del cluster di failover.For more information, see View and Read Failover Cluster Instance Diagnostics Log.

Suggerimento

La stored procedure sp_server_diagnostic viene usata dalla tecnologia SQL Server AlwaysOn, ma è anche disponibile per essere usata da qualsiasi istanza di SQL Server per il rilevamento e la risoluzione dei problemi.While the sp_server_diagnostic stored procedure is used by SQL Server Always On technology, it is available for use in any SQL Server instance to help detect and troubleshoot problems.

Determinazione di errori Determining Failures

La DLL risorse del motore di database di SQL Server determina se lo stato di integrità rilevato è una condizione di errore utilizzando la proprietà FailureConditionLevel.The SQL Server Database Engine resource DLL determines whether the detected health status is a condition for failure using the FailureConditionLevel property. La proprietà FailureConditionLevel definisce quale stato integrità rilevato causa il riavvio o il failover.The FailureConditionLevel property defines which detected health statuses cause restarts or failovers. Sono disponibili più livelli di opzioni, da nessun riavvio o failover automatico a tutte le possibili condizioni di errore che comportano un riavvio o un failover automatico.Multiple levels of options are available, ranging from no automatic restart or failover to all possible failure conditions resulting in an automatic restart or failover. Per altre informazioni su come configurare questa proprietà, vedere Configurare le impostazioni della proprietà FailureConditionLevel.For more information about how to configure this property, see Configure FailureConditionLevel Property Settings.

Le condizioni di errore vengono impostate in base a un ordine crescente.The failure conditions are set on an increasing scale. In ognuno dei livelli 1-5 sono incluse tutte le condizioni dei livelli precedenti oltre alle proprie condizioni specifiche.For levels 1-5, each level includes all the conditions from the previous levels in addition to its own conditions. Pertanto, in ogni livello la probabilità di un failover o di un riavvio è maggiore.This means that with each level, there is an increased probability of a failover or restart. I livelli delle condizioni di errore sono descritti nella tabella seguente.The failure condition levels are described in the following table.

Rivedere sp_server_diagnostics (Transact-SQL) poiché questa stored procedure di sistema gioca un ruolo importante nei livelli di condizione di errore.Review sp_server_diagnostics (Transact-SQL) as this system stored procedure plays in important role in the failure condition levels.

LevelLevel CondizioneCondition DescrizioneDescription
00 Nessun failover o riavvio automaticoNo automatic failover or restart Viene indicato che con qualsiasi condizione di errore non verrà attivato automaticamente alcun failover o riavvio.Indicates that no failover or restart will be triggered automatically on any failure conditions. Questo livello serve solo per scopi di manutenzione del sistema.This level is for system maintenance purposes only.
11 Failover o riavvio in caso di server non disponibileFailover or restart on server down Viene indicato che verrà attivato un riavvio o un failover del server se si verifica la condizione seguente:Indicates that a server restart or failover will be triggered if the following condition is raised:

Indisponibilità del servizio SQL Server.SQL Server service is down.
22 Failover o riavvio in caso di mancata risposta da parte del serverFailover or restart on server unresponsive Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

Indisponibilità del servizio SQL Server.SQL Server service is down.

L'istanza di SQL Server non risponde (la DLL risorse non può ricevere dati da sp_server_diagnostics entro le impostazioni HealthCheckTimeout).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).
33 Failover o riavvio in caso di errori critici del serverFailover or restart on critical server errors Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

Indisponibilità del servizio SQL Server.SQL Server service is down.

L'istanza di SQL Server non risponde (la DLL risorse non può ricevere dati da sp_server_diagnostics entro le impostazioni HealthCheckTimeout).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di sistema.System stored procedure sp_server_diagnostics returns ‘system error’.
44 Failover o riavvio in caso di errori del server con gravità moderataFailover or restart on moderate server errors Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

Indisponibilità del servizio SQL Server.SQL Server service is down.

L'istanza di SQL Server non risponde (la DLL risorse non può ricevere dati da sp_server_diagnostics entro le impostazioni HealthCheckTimeout).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di sistema.System stored procedure sp_server_diagnostics returns ‘system error’.

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di risorsa.System stored procedure sp_server_diagnostics returns ‘resource error’.
55 Failover o riavvio in caso di qualsiasi condizione di errore qualificataFailover or restart on any qualified failure conditions Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

Indisponibilità del servizio SQL Server.SQL Server service is down.

L'istanza di SQL Server non risponde (la DLL risorse non può ricevere dati da sp_server_diagnostics entro le impostazioni HealthCheckTimeout).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di sistema.System stored procedure sp_server_diagnostics returns ‘system error’.

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di risorsa.System stored procedure sp_server_diagnostics returns ‘resource error’.

La stored procedure di sistema sp_server_diagnostics restituisce l'errore di elaborazione query.System stored procedure sp_server_diagnostics returns ‘query_processing error’.

Valore predefinitoDefault Value

Risposta agli errori Responding to Failures

Una volta rilevata una o più condizioni di errore, il servizio WSFC risponde agli errori in base allo stato del quorum WSFC e alle impostazioni di riavvio e failover del gruppo di risorse di FCI.After one or more failure conditions are detected, how the WSFC service responds to the failures depends on the WSFC quorum state and the restart and failover settings of the FCI resource group. Se l'istanza FCI ha perso il quorum WSFC, l'intera istanza FCI viene portata offline e perde la disponibilità elevata.If the FCI has lost its WSFC quorum, then the entire FCI is brought offline and the FCI has lost its high availability. Se l'istanza FCI ancora mantiene il quorum WSFC, è possibile che il servizio WSFC risponda prima tentando di riavviare il nodo in errore e quindi eseguendo il failover se i tentativi del riavvio non riescono.If the FCI still retains its WSFC quorum, then the WSFC service may respond by first attempting to restart the failed node and then failover if the restart attempts are unsuccessful. Le impostazioni di riavvio e failover vengono configurate nello snap-in Gestione cluster di failover.The restart and failover settings are configured in the Failover Cluster Manager snap-in. Per altre informazioni su queste impostazioni, vedere Proprietà <risorsa>: scheda Criteri.For more information these settings, see <Resource> Properties: Policies Tab.

Per altre informazioni, vedere Modalità quorum WSFC e configurazione del voto (SQL Server).For more information on maintaining quorum health, see WSFC Quorum Modes and Voting Configuration (SQL Server).

Vedere ancheSee Also

ALTER SERVER CONFIGURATION (Transact-SQL)ALTER SERVER CONFIGURATION (Transact-SQL)