Criteri di failover per istanze del cluster di failover
In un'istanza del cluster di failover (FCI, Failover Cluster Instance) di SQL Server, solo un nodo può possedere il gruppo di risorse del cluster WSFC (Windows Server Failover Cluster) a un'ora specificata. Le richieste del client vengono servite tramite questo nodo nell'istanza FCI. In caso di errore e riavvio non eseguito, la proprietà del gruppo viene spostata in un altro nodo WSFC nell'istanza FCI. Questo processo viene chiamato failover. SQL Server 2012 aumenta l'affidabilità di rilevamento dell'errore e fornisce criteri di failover flessibili.
Un'istanza FCI di SQL Server dipende dal servizio WSFC sottostante per il rilevamento del failover. 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 Server.
Il cluster WSFC gestisce la configurazione del quorum che assicura una destinazione del failover univoca in un failover automatico. Il servizio WSFC determina se il cluster è sempre nell'integrità del quorum ottimale e porta di conseguenza il gruppo di risorse online e offline.
L'istanza SQL Server attiva riporta periodicamente un set di diagnostica del componente al gruppo di risorse WSFC su una connessione dedicata. Il gruppo di risorse WSFC gestisce i criteri del failover che definiscono le condizioni di errore che attivano operazioni di riavvio e failover.
In questo argomento viene illustrato il secondo meccanismo. Per ulteriori 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).
Importante |
---|
I failover automatici da e verso un'istanza FCI non sono consentiti in un gruppo di disponibilità AlwaysOn. I failover manuali da e verso un'istanza FCI sono consentiti in un gruppo di disponibilità AlwaysOn. |
Panoramica dei criteri di failover
Il processo del failover si può essere suddiviso nei passaggi indicati di seguito.
Monitoraggio dello stato di integrità
Tre sono i tipi di stato di integrità che vengono monitorati per l'istanza FCI:
Stato del servizio SQL Server
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.
Velocità di risposta dell'istanza di SQL Server
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à. In tal modo si assicura che l'istanza di SQL disponga delle risorse richieste per restituire lo stato di integrità durante il caricamento. 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.
La DLL risorse determina la velocità di risposta dell'istanza di SQL utilizzando un timeout di controllo integrità. 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. Questa proprietà è configurabile utilizzando T-SQL così come nello snap-in Gestione cluster di failover. Per ulteriori informazioni, vedere Configurazione delle impostazioni HealthCheckTimeout. Di seguito viene descritta l'influenza di questa proprietà sulle impostazioni del timeout e dell'intervallo di ripetizione:
Tramite la DLL risorse viene chiamata la stored procedure sp_server_diagnostics e impostato l'intervallo di ripetizione su un terzo dell'impostazione HealthCheckTimeout.
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.
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.
Diagnostica dei componenti di SQL Server
La stored procedure di sistema sp_server_diagnostics raccoglie periodicamente i dati di diagnostica dei componenti sull'istanza di SQL. Le informazioni diagnostiche raccolte vengono visualizzate in una riga per ognuno dei componenti seguenti e passate al thread chiamante.
sistema
risorsa
processo query
io_subsystem
eventi
I componenti system, resource e query process vengono utilizzati per il rilevamento di errori. I componenti io_subsytem ed events vengono utilizzati solo per scopi diagnostici.
Ogni set di righe di informazioni viene scritto anche nel log di diagnostica dei cluster di SQL Server. Per ulteriori informazioni, vedere Visualizzazione e lettura del log di diagnostica dell'istanza del cluster di failover.
Suggerimento |
---|
La stored procedure sp_server_diagnostic viene utilizzata 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. |
Determinazione di errori
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. La proprietà FailureConditionLevel definisce quale stato integrità rilevato causa il riavvio o il failover. 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. Per ulteriori informazioni su come configurare questa proprietà, vedere Configurare le impostazioni della proprietà FailureConditionLevel.
Le condizioni di errore vengono impostate in base a un ordine crescente. In ognuno dei livelli 1-5 sono incluse tutte le condizioni dei livelli precedenti oltre alle proprie condizioni specifiche. Pertanto, in ogni livello la probabilità di un failover o di un riavvio è maggiore. I livelli delle condizioni di errore sono descritti nella tabella seguente.
Rivedere sp_server_diagnostics (Transact-SQL) poiché questa stored procedure di sistema gioca un ruolo importante nei livelli di condizione di errore.
Livello |
Condizione |
Descrizione |
---|---|---|
0 |
Nessun failover o riavvio automatico |
|
1 |
Failover o riavvio in caso di server non disponibile |
Viene indicato che verrà attivato un riavvio o un failover del server se si verifica la condizione seguente:
|
2 |
Failover o riavvio in caso di mancata risposta da parte del server |
Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:
|
31 |
Failover o riavvio in caso di errori critici del server |
Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:
|
4 |
Failover o riavvio in caso di errori del server con gravità moderata |
Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:
|
5 |
Failover o riavvio in caso di qualsiasi condizione di errore qualificata |
Viene indicato che verrà attivato un riavvio o un failover del server se si verifica una qualsiasi delle condizioni seguenti:
|
1 Valore predefinito
Risposta agli errori
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. Se l'istanza FCI ha perso il quorum WSFC, l'intera istanza FCI viene portata offline e perde la disponibilità elevata. 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. Le impostazioni di riavvio e failover vengono configurate nello snap-in Gestione cluster di failover. Per ulteriori informazioni su queste impostazioni, vedere <Risorsa> Proprietà: scheda Criteri.
Per ulteriori informazioni sulla gestione dell'integrità del quorum, vedere Modalità quorum WSFC e configurazione del voto (SQL Server).