Flexible Richtlinie für ein automatisches Failover einer VerfügbarkeitsgruppeFlexible Automatic Failover Policy - Availability Group

Eine flexible Failoverrichtlinie ermöglicht eine präzise Kontrolle über die Bedingungen, die ein automatisches Failover für eine Verfügbarkeitsgruppe verursachen.A flexible failover policy provides granular control over the conditions that cause automatic failover for an availability group. Durch eine Änderung der Fehlerbedingungen, die ein automatisches Failover und die Häufigkeit von Integritätsprüfungen auslösen, können Sie die Wahrscheinlichkeit für ein automatisches Failover erhöhen oder verringern, um das SLA für hohe Verfügbarkeit zu unterstützen.By changing the failure conditions that trigger an automatic failover and the frequency of health checks, you can increase or decrease the likelihood of an automatic failover to support your SLA for high availability.

Die flexible Failoverrichtlinie für eine Verfügbarkeitsgruppe wird durch die Fehlerbedingungsebene und einen Schwellenwert für das Integritätsprüfungstimeout definiert.The flexible failover policy of an availability group is defined by its failure-condition level and health-check timeout threshold. Sobald erkannt wird, dass eine Verfügbarkeitsgruppe ihre Fehlerbedingungsebene oder ihren Schwellenwert für das Integritätsprüfungstimeout überschritten hat, meldet die Ressourcen-DLL der Verfügbarkeitsgruppe dies dem WSFC-Cluster (Windows Server Failover Clustering).On detecting that an availability group has exceeded its failure condition level or its health-check timeout threshold, the availability group's resource DLL responds back to the Windows Server Failover Clustering (WSFC) cluster. Der WSFC-Cluster initiiert dann ein automatisches Failover zum sekundären Replikat.The WSFC cluster then initiates an automatic failover to the secondary replica.

Wichtig

Wenn eine Verfügbarkeitsgruppe den Schwellenwert für WSFC-Fehler überschreitet, versucht der WSFC-Cluster nicht, ein automatisches Failover für die Verfügbarkeitsgruppe auszuführen.If an availability group exceeds its WSFC failure threshold, the WSFC cluster will not attempt an automatic failover for the availability group. Außerdem verbleibt die WSFC-Ressourcengruppe der Verfügbarkeitsgruppe so lange in einem fehlerhaften Zustand, bis der Clusteradministrator die fehlerhafte Gruppe manuell online schaltet oder bis der Datenbankadministrator ein manuelles Failover der Verfügbarkeitsgruppe ausführt.Furthermore, the WSFC resource group of the availability group remains in a failed state until either the cluster administrator manually brings the failed resource group online or the database administrator performs a manual failover of the availability group. Der WSFC-Fehlerschwellenwert ist als maximale Anzahl von Fehlern definiert, die während eines bestimmten Zeitraums für die Verfügbarkeitsgruppe unterstützt werden.The WSFC failure threshold is defined as the maximum number of failures supported for the availability group during a given time period. Der Standardzeitraum beträgt sechs Stunden, und der Standardwert für die maximale Anzahl von Fehlern während dieses Zeitraums entspricht n-1, wobei n für die Anzahl der WSFC-Knoten steht.The default time period is six hours, and the default value for the maximum number of failures during this period is n-1, where n is the number of WSFC nodes. Um den Fehlerschwellenwert für eine angegebene Verfügbarkeitsgruppe zu ändern, verwenden Sie die WSFC Failover Manager Console.To change the failure-threshold values for a given availability group, use the WSFC Failover Manager Console.

Dieses Thema enthält folgende Abschnitte:This topic contains the following sections:

Schwellenwert für das Integritätsprüfungstimeout Health-Check Timeout Threshold

Die WSFC-Ressourcen-DLL der Verfügbarkeitsgruppe führt eine Integritätsprüfung am primären Replikat aus, indem sie die gespeicherte Prozedur sp_server_diagnostics auf der SQL Server-Instanz aufruft, die das primäre Replikat hostet.WSFC resource DLL of the availability group performs a health check of the primary replica by calling the sp_server_diagnostics stored procedure on the instance of SQL Server that hosts the primary replica. sp_server_diagnostics gibt Ergebnisse in einem Intervall zurück, das 1/3 des Schwellenwerts für das Integritätsprüfungstimeout für die Verfügbarkeitsgruppe entspricht.sp_server_diagnostics returns results at an interval that equals 1/3 of the health-check timeout threshold for the availability group. Der Standardschwellenwert für das Integritätsprüfungstimeout ist 30 Sekunden, und dies bedeutet, dass sp_server_diagnostics in einem Intervall von 10 Sekunden Ergebnisse zurückgibt.The default health-check timeout threshold is 30 seconds, which causes sp_server_diagnostics to return at a 10-second interval. Wenn sp_server_diagnostics langsam ist oder keine Informationen zurückgibt, wartet die Ressourcen-DLL das gesamte Intervall des durch den Schwellenwert definierten Integritätsprüfungstimeouts ab, bevor festgestellt wird, dass das primäre Replikat nicht reagiert.If sp_server_diagnostics is slow or is not returning information, the resource DLL will wait for the full interval of the health-check timeout threshold before determining that the primary replica is unresponsive. Wenn das primäre Replikat nicht reagiert, wird ein automatisches Failover initiiert, sofern dies aktuell unterstützt wird.If the primary replica is unresponsive, an automatic failover is initiated, if currently supported.

Wichtig

sp_server_diagnostics führt keine Integritätsprüfungen auf Datenbankebene aus.sp_server_diagnostics does not perform health checks at the database level.

Fehlerbedingungsebene Failure-Condition Level

Ob die Diagnosedaten und Zustandsinformationen, die von sp_server_diagnostics zurückgegeben wurden, ein automatisches Failover garantieren, hängt von der Fehlerbedingungsebene der Verfügbarkeitsgruppe ab.Whether the diagnostic data and health information returned by sp_server_diagnostics warrants an automatic failover depends on the failure-condition level of the availability group. Die Fehlerbedingungsebene gibt an, welche Fehlerbedingungen ein automatisches Failover auslösen.The failure-condition level specifies what failure conditions trigger an automatic failover. Es gibt fünf Fehlerbedingungsebenen, die von der Ebene mit den wenigsten Einschränkungen (Ebene 1) bis zur Ebene mit den meisten Einschränkungen (Ebene 5) reichen.There are five failure-condition levels, which range from the least restrictive (level one) to the most restrictive (level five). Jede Bedingungsebene umfasst stets auch die weniger restriktiven Ebenen.A given level encompasses the less restrictive levels. Daher schließt die strengste Ebene 5 die vier Bedingungsebenen mit weniger Einschränkungen ein usw.Thus, the strictest level, five, includes the four less restrictive conditions, and so forth.

Wichtig

Beschädigte und fehlerverdächtige Datenbanken werden von keiner Fehlerbedingungsebene erkannt.Damaged databases and suspect databases are not detected by any failure-condition level. Deshalb werden automatische Failover niemals von Datenbanken ausgelöst, die beschädigt oder fehlerverdächtig sind (entweder aufgrund von Hardwarefehlern, Datenkorruption oder anderen Fehlern).Therefore, a database that is damaged or suspect (whether due to a hardware failure, data corruption, or other issue) never triggers an automatic failover.

In der folgenden Tabelle werden die Fehlerbedingungen beschrieben, die der jeweiligen Ebene entspricht.The following table describes the failure-conditions that corresponds to each level.

EbeneLevel FehlerbedingungFailure Condition Transact-SQLTransact-SQL Wert Value PowerShell-WertPowerShell Value
1 (eins)One der Server ausfällt.On server down. Gibt an, dass ein automatisches Failover in den folgenden Fällen initiiert wird:Specifies that an automatic failover is initiated when one the following occurs:

Der SQL ServerSQL Server -Dienst ist ausgefallen.The SQL ServerSQL Server service is down.

Das Leasing der Verfügbarkeitsgruppe für die Verbindung mit dem WSFC-Cluster läuft ab, da keine ACK-Meldung von der Serverinstanz empfangen wird.The lease of the availability group for connecting to the WSFC cluster expires because no ACK is received from the server instance. Weitere Informationen finden Sie unter How It Works: SQL Server AlwaysOn Lease Timeout.For more information, see How It Works: SQL Server Always On Lease Timeout.



Dies ist die am wenigsten restriktive Ebene.This is the least restrictive level.
11 OnServerDownOnServerDown
2 (zwei)Two der Server nicht reagiert.On server unresponsive. Gibt an, dass ein automatisches Failover in den folgenden Fällen initiiert wird:Specifies that an automatic failover is initiated when one of the following occurs:

Die Instanz von SQL ServerSQL Server stellt keine Verbindung mit dem Cluster her, und der vom Benutzer angegebene Schwellenwert für das Integritätsprüfungstimeout der Verfügbarkeitsgruppe wurde überschritten.The instance of SQL ServerSQL Server does not connect to cluster, and the user-specified health check timeout threshold of the availability group is exceeded.

Das Verfügbarkeitsreplikat weist einen fehlerhaften Status auf.The availability replica is in failed state.
22 OnServerUnresponsiveOnServerUnresponsive
3 (drei)Three ein kritischer Serverfehler auftritt.On critical server error. Gibt an, dass ein automatisches Failover bei kritischen internen SQL ServerSQL Server -Fehlern initiiert wird, z. B. verwaisten Spinlocks, ernsten Schreibzugriffsverletzungen oder zu vielen Sicherungen.Specifies that an automatic failover is initiated on critical SQL ServerSQL Server internal errors, such as orphaned spinlocks, serious write-access violations, or too much dumping.

Dies ist der Standardebene.This is the default level.
33 OnCriticalServerErrorOnCriticalServerError
4 (vier)Four ein mittelschwerer Serverfehler auftritt.On moderate server error. Gibt an, dass ein automatisches Failover bei mittelschweren internen SQL ServerSQL Server -Fehlern initiiert wird, z. B. bei dauerhaft unzureichendem Arbeitsspeicher im internen SQL ServerSQL Server -Ressourcenpool.Specifies that an automatic failover is initiated on moderate SQL ServerSQL Server internal errors, such as a persistent out-of-memory condition in the SQL ServerSQL Server internal resource pool. 44 OnModerateServerErrorOnModerateServerError
5 (fünf)Five eine qualifizierte Fehlerbedingung auftritt.On any qualified failure conditions. Gibt an, dass ein automatisches Failover bei sämtlichen qualifizierten Fehlerbedingungen initiiert wird, einschließlich:Specifies that an automatic failover is initiated on any qualified failure conditions, including:

Erkennung eines Deadlocks des SchedulersDetection of Scheduler deadlock.

Erkennung eines unlösbaren Deadlocks.Detection of an unsolvable deadlock.



Dies ist die restriktivste Ebene.This is the most restrictive level.
55 OnAnyQualifiedFailureConditionsOnAnyQualifiedFailureConditions
Hinweis

Das Fehlen einer Reaktion auf Clientanforderungen durch eine SQL ServerSQL Server -Instanz ist für Verfügbarkeitsgruppen nicht relevant.Lack of response by an instance of SQL ServerSQL Server to client requests is irrelevant to availability groups.

So konfigurieren Sie ein automatisches FailoverTo configure automatic failover

Siehe auchSee Also

Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server) Overview of Always On Availability Groups (SQL Server)
Verfügbarkeitsmodi (Always On-Verfügbarkeitsgruppen) Availability Modes (Always On Availability Groups)
Failover und Failovermodi (Always On-Verfügbarkeitsgruppen) Failover and Failover Modes (Always On Availability Groups)
Windows Server-Failoverclustering (WSFC) mit SQL Server Windows Server Failover Clustering (WSFC) with SQL Server
Failover Policy for Failover Cluster Instances Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)sp_server_diagnostics (Transact-SQL)