Dela via


Failover-policy för failover-klusterinstanser

gäller för:SQL Server

I en SQL Server-redundansklusterinstans (FCI) kan endast en nod äga klusterresursgruppen Windows Server-redundanskluster (WSFC) vid en viss tidpunkt. Klientbegäranden hanteras via den här noden i FCI:n. Vid ett fel och en misslyckad omstart flyttas gruppägarskapet till en annan WSFC-nod i FCI:n. Den här processen kallas failover. SQL Server ökar tillförlitligheten för felidentifiering och tillhandahåller en flexibel redundansprincip.

En SQL Server FCI är beroende av den underliggande WSFC-tjänsten för redundansidentifiering. Därför avgör två mekanismer redundansbeteendet för FCI: den förstnämnda är inbyggd WSFC-funktionalitet och den senare är funktioner som läggs till av SQL Server-konfigurationen.

  • WSFC-klustret underhåller kvorumkonfigurationen, vilket säkerställer ett unikt redundansmål i en automatisk redundansväxling. WSFC-tjänsten kontrollerar om klustret är vid optimal kvorumhälsa hela tiden och startar eller stänger av resursgruppen därefter.

  • Den aktiva SQL Server-instansen rapporterar regelbundet en uppsättning komponentdiagnostik till WSFC-resursgruppen via en dedikerad anslutning. WSFC-resursgruppen upprätthåller redundansprincipen, som definierar de felvillkor som utlöser omstarter och redundansväxlingar.

I det här avsnittet beskrivs den andra mekanismen ovan. Mer information om WSFC-beteendet för kvorumkonfiguration och hälsoidentifiering finns i WSFC Quorum Modes and Voting Configuration (SQL Server).

Viktigt!

Automatiska redundansväxlingar till och från en FCI är inte tillåtna i en Always On-tillgänglighetsgrupp. Manuella redundansväxlingar till och från FCI tillåts dock i en Always On-tillgänglighetsgrupp.

Översikt över failover-policy

Redundansväxlingsprocessen kan delas upp i följande steg:

  1. Övervaka hälsostatusen

  2. Fastställa fel

  3. Svara på fel

Övervaka hälsostatusen

Det finns tre typer av hälsostatusar som övervakas för FCI:

Tillståndet för SQL Server-tjänsten

WSFC-tjänsten övervakar starttillståndet för SQL Server-tjänsten på den aktiva FCI-noden för att identifiera när SQL Server-tjänsten stoppas.

Svarstider för SQL Server-instansen

Under SQL Server-starten använder WSFC-tjänsten SQL Server Database Engine-resurs-DLL för att skapa en ny anslutning till på en separat tråd som endast används för att övervaka hälsostatusen. Detta säkerställer att SQL-instansen där har de resurser som krävs för att rapportera dess hälsostatus under belastning. Med den här dedikerade anslutningen kör SQL Server den sp_server_diagnostics (Transact-SQL) system lagrade proceduren i upprepat läge för att regelbundet rapportera hälsostatusen för SQL Server-komponenterna till resurs-DLL:en.

Resurs-DLL avgör svarstiden för SQL-instansen med hjälp av en tidsgräns för hälsokontroll. Egenskapen HealthCheckTimeout definierar hur länge resurs-DLL:n ska vänta på den sp_server_diagnostics lagrade proceduren innan SQL-instansen rapporterar att den inte svarar på WSFC-tjänsten. Den här egenskapen kan konfigureras med hjälp av T-SQL samt i Snapin-modulen för Failover-klusterhanteraren. Mer information finns i Konfigurera egenskapsinställningar för HealthCheckTimeout. Följande objekt beskriver hur den här egenskapen påverkar timeout- och upprepningsintervallinställningar:

  • Resurs-DLL anropar den sp_server_diagnostics lagrade proceduren och anger upprepningsintervallet till en tredjedel av inställningen HealthCheckTimeout.

  • Om den sp_server_diagnostics lagrade proceduren är långsam eller inte returnerar information väntar resurs-DLL:n på det intervall som anges av HealthCheckTimeout innan den rapporterar till WSFC-tjänsten att SQL-instansen inte svarar.

  • Om den dedikerade anslutningen går förlorad försöker resurs-DLL:n ansluta till SQL-instansen igen för det intervall som anges av HealthCheckTimeout innan den rapporterar till WSFC-tjänsten att SQL-instansen inte svarar.

SQL Server-komponentdiagnostik

Den systemlagrade proceduren sp_server_diagnostics samlar regelbundet in komponentdiagnostik i SQL-instansen. Diagnostikinformationen som samlas in visas som en rad för var och en av följande komponenter och skickas till den anropande tråden.

  1. system

  2. resurs

  3. frågehanteringsprocess

  4. io_subsystem

  5. evenemang

System-, resurs- och frågeprocesskomponenterna används för felidentifiering. Komponenterna io_subsytem och händelser används endast för diagnostikändamål.

Varje raduppsättning med information skrivs också till SQL Server-klusterdiagnostikloggen. Mer information finns i Visa och läsa diagnostiklogg för redundansklusterinstans.

Tips/Råd

Även om den sp_server_diagnostic lagrade proceduren används av SQL Server AlwaysOn-teknik är den tillgänglig för användning i alla SQL Server-instanser för att identifiera och felsöka problem.

Fastställa fel

SQL Server Database Engine resurs-DLL avgör om den identifierade hälsostatusen är ett villkor för fel med hjälp av egenskapen FailureConditionLevel. Egenskapen FailureConditionLevel definierar vilka identifierade hälsostatusar som orsakar omstarter eller redundans. Flera nivåer av alternativ är tillgängliga, allt från ingen automatisk omstart eller redundans till alla möjliga feltillstånd som resulterar i en automatisk omstart eller redundans. Mer information om hur du konfigurerar den här egenskapen finns i Konfigurera egenskapsinställningar för FailureConditionLevel.

Felvillkor definieras i en ökande skala. För nivåer 1-5 innehåller varje nivå alla villkor från de tidigare nivåerna utöver sina egna villkor. Det innebär att det för varje nivå finns en ökad sannolikhet för redundans eller omstart. Nivåer för felvillkor beskrivs i följande tabell.

Granska sp_server_diagnostics (Transact-SQL) eftersom den här system lagrade proceduren spelar en viktig roll i feltillståndsnivåerna.

Nivå Tillstånd Beskrivning
0 Ingen automatisk redundansväxling eller omstart Anger att ingen redundansväxling eller omstart utlöses automatiskt vid eventuella feltillstånd. Den här nivån är endast avsedd för systemunderhåll.
1 Redundansväxling eller omstart vid serveravbrott Anger att en serveromstart eller failover kommer att ske om följande villkor inträffar:

SQL Server-tjänsten är nere.
2 Redundansväxling eller omstart vid icke-svarande server Anger att en serveromstart eller redundans utlöses om något av följande villkor utlöses:

SQL Server-tjänsten är nere.

SQL Server-instansen svarar inte (resurs-DLL kan inte ta emot data från sp_server_diagnostics i inställningarna för HealthCheckTimeout).
3* Omkoppling eller omstart vid kritiska serverfel Anger att en serveromstart eller redundans utlöses om något av följande villkor utlöses:

SQL Server-tjänsten är nere.

SQL Server-instansen svarar inte (resurs-DLL kan inte ta emot data från sp_server_diagnostics i inställningarna för HealthCheckTimeout).

System lagrad procedur sp_server_diagnostics returnerar "systemfel".
4 Failöver eller omstart vid måttliga serverfel Anger att en serveromstart eller redundans utlöses om något av följande villkor utlöses:

SQL Server-tjänsten är nere.

SQL Server-instansen svarar inte (resurs-DLL kan inte ta emot data från sp_server_diagnostics i inställningarna för HealthCheckTimeout).

System lagrad procedur sp_server_diagnostics returnerar "systemfel".

System lagrad procedur sp_server_diagnostics returnerar "resursfel".
5 Redundansväxling eller omstart vid eventuella kvalificerade feltillstånd Anger att en serveromstart eller redundans utlöses om något av följande villkor utlöses:

SQL Server-tjänsten är nere.

SQL Server-instansen svarar inte (resurs-DLL kan inte ta emot data från sp_server_diagnostics i inställningarna för HealthCheckTimeout).

System lagrad procedur sp_server_diagnostics returnerar "systemfel".

System lagrad procedur sp_server_diagnostics returnerar "resursfel".

Systemlagrad procedur sp_server_diagnostics returnerar fel vid bearbetning av frågor.

*Standardvärde

Svara på fel

När ett eller flera feltillstånd har identifierats beror hur WSFC-tjänsten svarar på felen på WSFC-kvorumtillståndet och inställningarna för omstart och redundans för FCI-resursgruppen. Om FCI har förlorat sitt WSFC-kvorum stängs hela FCI av och FCI har förlorat sin höga tillgänglighet. Om FCI fortfarande behåller sitt WSFC-kvorum kan WSFC-tjänsten svara genom att först försöka starta om den misslyckade noden och sedan redundans om omstartsförsöken misslyckas. Inställningarna för omstart och redundans konfigureras i snapin-modulen Klusterhanteraren för växling vid fel. Mer information om de här inställningarna finns på <fliken Resursegenskaper> : Principer.

Mer information om hur du underhåller kvorumhälsa finns i WSFC Quorum Modes and Voting Configuration (SQL Server).

Se även

ÄNDRA SERVERKONFIGURATION (Transact-SQL)