Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
In een SQL Server-failoverclusterexemplaar (FCI) kan op een gegeven moment slechts één knooppunt eigenaar zijn van de Windows Server Failover Cluster (WSFC)-clusterresourcegroep. De clientaanvragen worden verwerkt via dit knooppunt in de FCI. In het geval van een storing en een mislukte herstart, wordt het eigendom van de groep verplaatst naar een andere node in de WSFC binnen de FCI. Dit proces wordt failover genoemd. SQL Server verhoogt de betrouwbaarheid van foutdetectie en biedt een flexibel failoverbeleid.
Een SQL Server FCI is afhankelijk van de onderliggende WSFC-service voor failoverdetectie. Daarom bepalen twee mechanismen het failovergedrag voor FCI: de voormalige is systeemeigen WSFC-functionaliteit en de laatste is functionaliteit toegevoegd door SQL Server-installatie.
Het WSFC-cluster onderhoudt de quorumconfiguratie, die zorgt voor een uniek failoverdoel in een automatische failover. De WSFC-service bepaalt of het cluster altijd de optimale quorumstatus heeft en brengt de resourcegroep dienovereenkomstig online en offline.
Het actieve SQL Server-exemplaar rapporteert periodiek een set diagnostische onderdelen aan de WSFC-resourcegroep via een toegewezen verbinding. De WSFC-resourcegroep onderhoudt het failoverbeleid, waarmee de foutvoorwaarden worden gedefinieerd die opnieuw opstarten en failovers activeren.
In dit onderwerp wordt het tweede mechanisme hierboven besproken. Zie de WSFC-quorummodi en stemconfiguratie (SQL Server) voor meer informatie over het WSFC-gedrag voor quorumconfiguratie en statusdetectie.
Belangrijk
Automatische failovers van en naar een FCI zijn niet toegestaan in een AlwaysOn-beschikbaarheidsgroep. Handmatige failovers naar en van FCI zijn echter toegestaan in een Always On-beschikbaarheidsgroep.
Overzicht van failoverbeleid
Het failoverproces kan worden opgesplitst in de volgende stappen:
De gezondheidsstatus bewaken
Er zijn drie typen statussen die worden bewaakt voor de FCI:
Status van de SQL Server-service
De WSFC-service bewaakt de beginstatus van de SQL Server-service op het actieve FCI-knooppunt om te detecteren wanneer de SQL Server-service wordt gestopt.
Reactiesnelheid van het SQL Server-exemplaar
Tijdens het opstarten van SQL Server gebruikt de WSFC-service de resource-DLL van de SQL Server Database Engine om een nieuwe verbinding te creëren op een afzonderlijke thread die exclusief wordt gebruikt voor het monitoren van de gezondheidstoestand. Dit zorgt ervoor dat het SQL-exemplaar over de vereiste resources beschikt om de status ervan te rapporteren tijdens het laden. Met behulp van deze toegewezen verbinding voert SQL Server de sp_server_diagnostics (Transact-SQL) systeem opgeslagen procedure in de herhalingsmodus uit om periodiek de status van de SQL Server-onderdelen te rapporteren aan de bron-DLL.
De resource-DLL bepaalt de reactiesnelheid van het SQL-exemplaar met behulp van een time-out voor statuscontrole. Met de eigenschap HealthCheckTimeout wordt bepaald hoe lang de bron-DLL moet wachten op de sp_server_diagnostics-stored procedure voordat de SQL-instance als niet-reagerend wordt gerapporteerd aan de WSFC-service. Deze eigenschap kan worden geconfigureerd met behulp van T-SQL en in de module Failoverclusterbeheer. Zie Instellingen voor de eigenschap HealthCheckTimeout configureren voor meer informatie. In de volgende items wordt beschreven hoe deze eigenschap van invloed is op time-out- en herhalingsintervalinstellingen:
De resource DLL roept de sp_server_diagnostics stored procedure aan en stelt het herhalingsinterval in op een derde van de HealthCheckTimeout-instelling.
Als de sp_server_diagnostics opgeslagen procedure traag is of geen informatie retourneert, wacht de bron-DLL op het interval dat is opgegeven door HealthCheckTimeout voordat deze rapporteert aan de WSFC-service dat het SQL-exemplaar niet reageert.
Als de toegewezen verbinding is verbroken, probeert de resource-DLL de verbinding met het SQL-exemplaar opnieuw voor het interval dat is opgegeven door HealthCheckTimeout voordat deze rapporteert aan de WSFC-service dat het SQL-exemplaar niet reageert.
Diagnostische gegevens van SQL Server-onderdelen
De door het systeem opgeslagen procedure sp_server_diagnostics verzamelt periodiek componentdiagnoses van de SQL-exemplaar. De verzamelde diagnostische gegevens worden weergegeven als een rij voor elk van de volgende onderdelen en doorgegeven aan de aanroepende thread.
systeem
hulpbron
queryproces
io-subsysteem
gebeurtenissen
De systeem-, resource- en queryprocesonderdelen worden gebruikt voor foutdetectie. De io_subsytem- en gebeurtenisonderdelen worden alleen gebruikt voor diagnostische doeleinden.
Elke rijenset met gegevens wordt ook geschreven naar het diagnostische logboek van het SQL Server-cluster. Zie Weergeven en Lezen van het Diagnostische Logboek van Failover Cluster-instanties voor meer informatie.
Aanbeveling
Hoewel de sp_server_diagnostic opgeslagen procedure wordt gebruikt door SQL Server AlwaysOn-technologie, is deze beschikbaar voor gebruik in elk SQL Server-exemplaar om problemen te detecteren en op te lossen.
Fouten bepalen
De resource-DLL van de SQL Server-database-engine bepaalt of de gedetecteerde gezondheidsstatus een oorzaak van een fout is met behulp van de eigenschap FailureConditionLevel. De eigenschap FailureConditionLevel definieert welke gedetecteerde gezondheidsstatussen opnieuw opstarten of failovers initiëren. Er zijn meerdere opties beschikbaar, variërend van geen automatische herstart of failover tot alle mogelijke foutvoorwaarden, wat resulteert in een automatische herstart of failover. Zie Eigenschapsinstellingen voor FailureConditionLevel configureren voor meer informatie over het configureren van deze eigenschap.
De foutvoorwaarden worden ingesteld op een toenemende schaal. Voor niveaus 1-5 bevat elk niveau naast de eigen voorwaarden alle voorwaarden van de vorige niveaus. Dit betekent dat er bij elk niveau een verhoogde kans is op een failover of opnieuw opstarten. De niveaus van foutcondities worden in de volgende tabel beschreven.
Controleer sp_server_diagnostics (Transact-SQL) omdat deze opgeslagen systeemprocedure een belangrijke rol speelt in de foutconditieniveaus.
| Niveau | Conditie | Beschrijving |
|---|---|---|
| 0 | Geen automatische failover of opnieuw opstarten | Geeft aan dat er bij enige foutomstandigheden geen failover of herstart automatisch wordt geactiveerd. Dit niveau is alleen bedoeld voor systeemonderhoud. |
| 1 | Failover of herstart bij serveruitval | Geeft aan dat een server opnieuw opstart of een failover wordt geactiveerd als de volgende voorwaarde wordt geactiveerd. DE SQL Server-service is niet beschikbaar. |
| 2 | Failover of opnieuw opstarten bij niet reagerende server | Geeft aan dat een server opnieuw opstarten of failover wordt geactiveerd als een van de volgende voorwaarden wordt gegenereerd: DE SQL Server-service is niet beschikbaar. SQL Server-exemplaar reageert niet (resource-DLL kan geen gegevens ontvangen van sp_server_diagnostics binnen de HealthCheckTimeout-instellingen). |
| 3* | Failover of opnieuw opstarten bij kritieke serverfouten | Geeft aan dat een server opnieuw opstarten of failover wordt geactiveerd als een van de volgende voorwaarden wordt gegenereerd: DE SQL Server-service is niet beschikbaar. SQL Server-exemplaar reageert niet (resource-DLL kan geen gegevens ontvangen van sp_server_diagnostics binnen de HealthCheckTimeout-instellingen). Systeem opgeslagen procedure sp_server_diagnostics retourneert 'systeemfout'. |
| 4 | Failover of opnieuw opstarten bij gemiddelde serverfouten | Geeft aan dat een server opnieuw opstarten of failover wordt geactiveerd als een van de volgende voorwaarden wordt gegenereerd: DE SQL Server-service is niet beschikbaar. SQL Server-exemplaar reageert niet (resource-DLL kan geen gegevens ontvangen van sp_server_diagnostics binnen de HealthCheckTimeout-instellingen). Systeem opgeslagen procedure sp_server_diagnostics retourneert 'systeemfout'. De door het systeem opgeslagen procedure sp_server_diagnostics retourneert de 'resourcefout'. |
| 5 | Uitwijken of opnieuw opstarten bij gespecificeerde foutomstandigheden | Geeft aan dat een server opnieuw opstarten of failover wordt geactiveerd als een van de volgende voorwaarden wordt gegenereerd: DE SQL Server-service is niet beschikbaar. SQL Server-exemplaar reageert niet (resource-DLL kan geen gegevens ontvangen van sp_server_diagnostics binnen de HealthCheckTimeout-instellingen). Systeem opgeslagen procedure sp_server_diagnostics retourneert 'systeemfout'. De door het systeem opgeslagen procedure sp_server_diagnostics retourneert de 'resourcefout'. De in het systeem opgeslagen procedure sp_server_diagnostics geeft een 'query_processing error' terug. |
*Standaardwaarde
Reageren op fouten
Nadat een of meer foutvoorwaarden zijn gedetecteerd, is de wijze waarop de WSFC-service reageert op de fouten, afhankelijk van de status van het WSFC-quorum en de instellingen voor opnieuw opstarten en failover van de FCI-resourcegroep. Als de FCI het WSFC-quorum heeft verloren, wordt de volledige FCI offline gebracht en heeft de FCI de hoge beschikbaarheid verloren. Als de FCI nog steeds het WSFC-quorum behoudt, kan de WSFC-service reageren door eerst het mislukte knooppunt opnieuw op te starten en vervolgens een failover uit te voeren als de pogingen tot opnieuw opstarten mislukt zijn. De instellingen voor opnieuw opstarten en failover worden geconfigureerd in de module Failoverclusterbeheer. Zie Resource-eigenschappen<: tabblad Beleid voor meer informatie over deze instellingen>.
Zie WSFC-quorummodi en stemconfiguratie (SQL Server) voor meer informatie over het behouden van de gezondheid van de quorumstatus.