Failoverrichtlinie für FailoverclusterinstanzenFailover Policy for Failover Cluster Instances

In einer SQL ServerSQL Server -Failoverclusterinstanz (FCI) kann jeweils nur ein Knoten Besitzer der WSFC-Clusterressourcengruppe (Windows Server Failover Cluster) sein.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. Die Clientanforderungen werden durch diesen Knoten in der FCI behandelt.The client requests are served through this node in the FCI. Falls ein Fehler auftritt und kein erfolgreicher Neustart möglich ist, geht die Gruppe in den Besitz eines anderen WSFC-Knotens in der FCI über.In the case of a failure and an unsuccessful restart, the group ownership is moved to another WSFC node in the FCI. Dieser Prozess wird als Failover bezeichnet.This process is called failover. SQL Server 2017SQL Server 2017 erhöht die Zuverlässigkeit der Fehlererkennung und bietet eine flexible Failoverrichtlinie. increases the reliability of failure detection and provides a flexible failover policy.

Eine SQL ServerSQL Server -FCI ist im Hinblick auf die Failovererkennung vom zugrunde liegenden WSFC-Dienst abhängig.A SQL ServerSQL Server FCI depends on the underlying WSFC service for failover detection. Daher wird das Failoververhalten für die FCI durch zwei Mechanismen bestimmt: Der erste Mechanismus wird durch die systemeigenen WSFC-Funktionen und der zweite durch die Funktionen bereitgestellt, die vom SQL ServerSQL Server -Setup hinzugefügt werden.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.

  • Da die Quorumkonfiguration vom WSFC-Cluster verwaltet wird, ist sichergestellt, dass bei einem automatischen Failover ein eindeutiges Failoverziel vorhanden ist.The WSFC cluster maintains the quorum configuration, which ensures a unique failover target in an automatic failover. Der WSFC-Dienst ermittelt kontinuierlich, ob der Cluster einen optimalem Quorumzustand aufweist und schaltet die Ressourcengruppe entsprechend online und 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.

  • Von der aktiven SQL ServerSQL Server -Instanz werden regelmäßig Komponentendiagnosen über eine dedizierte Verbindung an die WSFC-Ressourcengruppe übermittelt.The active SQL ServerSQL Server instance periodically reports a set of component diagnostics to the WSFC resource group over a dedicated connection. Die Failoverrichtlinie, in der die Fehlerbedingungen definiert sind, durch die Neustarts und Failover ausgelöst werden, wird von der WSFC-Ressourcengruppe verwaltet.The WSFC resource group maintains the failover policy, which defines the failure conditions that trigger restarts and failovers.

    In diesem Thema wird der zweite oben genannte Mechanismus erörtert.This topic discusses the second mechanism above. Weitere Informationen zum WSFC-Verhalten bei der Quorumkonfiguration und Integritätserkennung finden Sie unter WSFC-Quorummodi und Abstimmungskonfiguration (SQL Server).For more information on the WSFC behavior for quorum configuration and health detection, see WSFC Quorum Modes and Voting Configuration (SQL Server).

Wichtig

Automatische Failover auf und von einer FCI sind in einer Always On-Verfügbarkeitsgruppe nicht zulässig.Automatic failovers to and from an FCI are not allowed in an Always On availability group. Ein manuelles Failover auf eine FCI bzw. von einer FCI ist in einer Always On-Verfügbarkeitsgruppe jedoch zulässig.However, manual failovers to and from and FCI are allowed in an Always On availability group.

Übersicht über die Failoverrichtlinie Failover Policy Overview

Der Failoverprozess lässt sich in folgende Schritte gliedern:The failover process can be broken down into the following steps:

  1. Überwachen des IntegritätsstatusMonitor the Health Status

  2. Bestimmen von FehlernDetermining Failures

  3. Reagieren auf FehlerResponding to Failures

Überwachen des Integritätsstatus Monitor the Health Status

Es gibt drei Arten von Integritätsstatus, die für die FCI überwacht werden:There are three types of health statuses that are monitored for the FCI:

Status des SQL Server-Diensts State of the SQL Server service

Der WSFC-Dienst überwacht den Startstatus des SQL Server-Diensts auf dem aktiven FCI-Knoten, um die Beendigung des SQL Server-Diensts zu erkennen.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.

Reaktionsfähigkeit der SQL Server-Instanz Responsiveness of the SQL Server instance

Während des Starts von SQL Server verwendet der WSFC-Dienst die Ressourcen-DLL des SQL Server-Datenbankmoduls, um eine neue Verbindung auf einem separaten Thread zu erstellen, die ausschließlich zum Überwachen des Integritätsstatus verwendet wird.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. Dadurch wird sichergestellt, dass die SQL-Instanz auch unter höherer Auslastung über die erforderlichen Ressourcen zum Übermitteln ihres Integritätsstatus verfügt.This ensures that there the SQL instance has the required resources to report its health status while under load. Unter Verwendung dieser dedizierten Verbindung führt SQL Server die gespeicherte Systemprozedur sp_server_diagnostics (Transact-SQL) im Wiederholungsmodus aus, um regelmäßig den Integritätsstatus der SQL Server-Komponenten an die Ressourcen-DLL zu übermitteln.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.

Die Ressourcen-DLL bestimmt die Reaktionsfähigkeit der SQL-Instanz mithilfe eines Timeouts für die Zustandsüberprüfung.The resource DLL determines the responsiveness of the SQL instance using a health check timeout. Die HealthCheckTimeout-Eigenschaft definiert, wie lange die Ressourcen-DLL auf eine Antwort von der gespeicherten Prozedur sp_server_diagnostics wartet, bevor der WSFC-Dienst die Meldung erhält, dass die SQL-Instanz nicht reagiert.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. Diese Eigenschaft kann sowohl mit T-SQL als auch im Failovercluster-Manager-Snap-In konfiguriert werden.This property is configurable using T-SQL as well as in the Failover Cluster Manager snap-in. Weitere Informationen finden Sie unter Configure HealthCheckTimeout Property Settings.For more information, see Configure HealthCheckTimeout Property Settings. Nachfolgend wird beschrieben, wie sich diese Eigenschaft auf die Einstellungen bezüglich Timeout und Wiederholungsintervall auswirken:The following items describe how this property affects timeout and repeat interval settings:

  • Die gespeicherte Prozedur sp_server_diagnostics wird von der Ressourcen-DLL aufgerufen, und das Wiederholungsintervall wird auf ein Drittel des Werts der HealthCheckTimeout-Einstellung festgelegt.The resource DLL calls the sp_server_diagnostics stored procedure and sets the repeat interval to one-third of the HealthCheckTimeout setting.

  • Wenn die gespeicherte Prozedur sp_server_diagnostics langsam ist oder keine Informationen zurückgibt, wartet die Ressourcen-DLL, bis das durch HealthCheckTimeout angegebene Intervall abgelaufen ist, bevor an den WSFC-Dienst gemeldet wird, dass die SQL-Instanz nicht reagiert.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.

  • Wenn die dedizierte Verbindung unterbrochen wird, versucht die Ressourcen-DLL für die durch HealthCheckTimeout angegebene Dauer, eine neue Verbindung mit der SQL-Instanz herzustellen, bevor an den WSFC-Dienst gemeldet wird, dass die SQL-Instanz nicht reagiert.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.

SQL Server-Komponentendiagnose SQL Server component diagnostics

Die gespeicherte Systemprozedur sp_server_diagnostics sammelt in regelmäßigen Abständen Diagnoseinformationen zu den Komponenten der SQL-Instanz.The system stored procedure sp_server_diagnostics periodically collects component diagnostics on the SQL instance. Die gesammelten Diagnoseinformationen werden als Zeile für die folgenden Komponenten angegeben und an den aufrufenden Thread übergeben.The diagnostic information that is collected is surfaced as a row for each of the following components and passed to the calling thread.

  1. Systemsystem

  2. resourceresource

  3. query processquery process

  4. io_subsystemio_subsystem

  5. Ereignisseevents

    Das System, die Ressource und der Abfrageprozess werden für die Fehlererkennung verwendet.The system, resource, and query process components are used for failure detection. Die io_subsytem und die Ereignisse werden nur zu Diagnosezwecken verwendet.The io_subsytem and events components are used for diagnostic purposes only.

    Jedes Rowset der Informationen wird auch in das SQL Server-Clusterdiagnoseprotokoll geschrieben.Each rowset of information is also written to the SQL Server cluster diagnostics log. Weitere Informationen finden Sie unter Anzeigen und Lesen des Failoverclusterinstanz-Diagnoseprotokolls.For more information, see View and Read Failover Cluster Instance Diagnostics Log.

Tipp

Die gespeicherte Prozedur sp_server_diagnostic wird von der SQL Server Always On-Technologie genutzt und kann in jeder SQL Server-Instanz zur einfacheren Problemerkennung und -behandlung verwendet werden.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.

Bestimmen von Fehlern Determining Failures

Die Ressourcen-DLL des SQL Server-Datenbankmoduls bestimmt anhand der FailureConditionLevel-Eigenschaft, ob der erkannte Integritätsstatus eine Fehlerbedingung darstellt.The SQL Server Database Engine resource DLL determines whether the detected health status is a condition for failure using the FailureConditionLevel property. Durch die FailureConditionLevel-Eigenschaft wird definiert, welcher erkannte Integritätsstatus zu einem Neustart oder Failover führt.The FailureConditionLevel property defines which detected health statuses cause restarts or failovers. Die unterschiedlichsten Optionen sind verfügbar: So kann beispielsweise nie ein automatischer Neustart oder ein automatisches Failover ausgelöst werden, oder bei jeder möglichen Fehlerbedingung wird immer ein automatischer Neustart bzw. ein automatisches Failover ausgeführt.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. Weitere Informationen zum Konfigurieren dieser Eigenschaft finden Sie unter Configure FailureConditionLevel Property Settings.For more information about how to configure this property, see Configure FailureConditionLevel Property Settings.

Die Fehlerbedingungen werden auf einer ansteigenden Skala festgelegt.The failure conditions are set on an increasing scale. Auf der Ebene 1-5 enthält jede Ebene die Bedingungen der vorherigen Ebenen sowie die eigenen Bedingungen.For levels 1-5, each level includes all the conditions from the previous levels in addition to its own conditions. Dies bedeutet, dass die Wahrscheinlichkeit eines Failovers oder Neustarts mit jeder Ebene zunimmt.This means that with each level, there is an increased probability of a failover or restart. Die Fehlerbedingungsebenen werden in der folgenden Tabelle beschrieben.The failure condition levels are described in the following table.

Informieren Sie sich unter sp_server_diagnostics (Transact-SQL), da diese gespeicherte Systemprozedur eine wichtige Funktion im Hinblick auf Fehlerbedingungsebenen erfüllt.Review sp_server_diagnostics (Transact-SQL) as this system stored procedure plays in important role in the failure condition levels.

EbeneLevel BedingungCondition BeschreibungDescription
00 Kein automatischer Failover oder NeustartNo automatic failover or restart Gibt an, dass bei einer Fehlerbedingung nicht automatisch ein Failover oder Neustart ausgelöst wird.Indicates that no failover or restart will be triggered automatically on any failure conditions. Diese Ebene ist nur für die Systemwartung vorgesehen.This level is for system maintenance purposes only.
11 Failover oder Neustart bei ServerausfallFailover or restart on server down Gibt an, dass ein Neustart oder ein Failover des Server ausgelöst wird, wenn die folgende Bedingung zutrifft:Indicates that a server restart or failover will be triggered if the following condition is raised:

SQL Server-Dienst ist ausgefallen.SQL Server service is down.
22 Failover oder Neustart bei nicht reagierendem ServerFailover or restart on server unresponsive Gibt an, dass ein Neustart oder ein Failover des Server ausgelöst wird, wenn eine der folgenden Bedingungen zutrifft:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server-Dienst ist ausgefallen.SQL Server service is down.

SQL Server-Instanz reagiert nicht (die Ressourcen-DLL kann von sp_server_diagnostics keine Daten innerhalb der durch die HealthCheckTimeout-Einstellungen vorgegebenen Zeit empfangen).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).
33 Failover oder Neustart bei wichtigen ServerfehlernFailover or restart on critical server errors Gibt an, dass ein Neustart oder ein Failover des Server ausgelöst wird, wenn eine der folgenden Bedingungen zutrifft:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server-Dienst ist ausgefallen.SQL Server service is down.

SQL Server-Instanz reagiert nicht (die Ressourcen-DLL kann von sp_server_diagnostics keine Daten innerhalb der durch die HealthCheckTimeout-Einstellungen vorgegebenen Zeit empfangen).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

Gespeicherte Systemprozedur sp_server_diagnostics gibt einen Systemfehler zurück.System stored procedure sp_server_diagnostics returns ‘system error’.
44 Failover oder Neustart auf mittelschweren ServerfehlernFailover or restart on moderate server errors Gibt an, dass ein Neustart oder ein Failover des Server ausgelöst wird, wenn eine der folgenden Bedingungen zutrifft:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server-Dienst ist ausgefallen.SQL Server service is down.

SQL Server-Instanz reagiert nicht (die Ressourcen-DLL kann von sp_server_diagnostics keine Daten innerhalb der durch die HealthCheckTimeout-Einstellungen vorgegebenen Zeit empfangen).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

Gespeicherte Systemprozedur sp_server_diagnostics gibt einen Systemfehler zurück.System stored procedure sp_server_diagnostics returns ‘system error’.

Gespeicherte Systemprozedur sp_server_diagnostics gibt einen Ressourcenfehler zurück.System stored procedure sp_server_diagnostics returns ‘resource error’.
55 Failover oder Neustart bei qualifizierten FehlerbedingungenFailover or restart on any qualified failure conditions Gibt an, dass ein Neustart oder ein Failover des Server ausgelöst wird, wenn eine der folgenden Bedingungen zutrifft:Indicates that a server restart or failover will be triggered if any of the following conditions are raised:

SQL Server-Dienst ist ausgefallen.SQL Server service is down.

SQL Server-Instanz reagiert nicht (die Ressourcen-DLL kann von sp_server_diagnostics keine Daten innerhalb der durch die HealthCheckTimeout-Einstellungen vorgegebenen Zeit empfangen).SQL Server instance is not responsive (Resource DLL cannot receive data from sp_server_diagnostics within the HealthCheckTimeout settings).

Gespeicherte Systemprozedur sp_server_diagnostics gibt einen Systemfehler zurück.System stored procedure sp_server_diagnostics returns ‘system error’.

Gespeicherte Systemprozedur sp_server_diagnostics gibt einen Ressourcenfehler zurück.System stored procedure sp_server_diagnostics returns ‘resource error’.

Gespeicherte Systemprozedur sp_server_diagnostics gibt Fehler bei der Abfrageverarbeitung zurück.System stored procedure sp_server_diagnostics returns ‘query_processing error’.

StandardwertDefault Value

Reagieren auf Fehler Responding to Failures

Wie der WSFC-Dienst auf die erkannten Fehlerbedingungen reagiert, hängt vom WSFC-Quorumstatus sowie von den Neustart- und Failovereinstellungen der FCI-Ressourcengruppe ab.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. Wenn die FCI das WSFC-Quorum verloren hat, wird die gesamte FCI offline geschaltet und weist keine hohe Verfügbarkeit mehr auf.If the FCI has lost its WSFC quorum, then the entire FCI is brought offline and the FCI has lost its high availability. Wenn die FCI noch über das WSFC-Quorum verfügt, reagiert der WSFC-Dienst u. U. wie folgt: Zunächst wird versucht, den fehlerhaften Knoten neu zu starten, und dann ein Failover ausgeführt, falls die Neustarts nicht erfolgreich sind.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. Die Neustart- und Failovereinstellungen werden im Failovercluster-Manager-Snap-In konfiguriert.The restart and failover settings are configured in the Failover Cluster Manager snap-in. Weitere Informationen zu diesen Einstellungen finden Sie unter <Eigenschaften von : Richtlinien (Registerkarte).For more information these settings, see <Resource> Properties: Policies Tab.

Informationen zum Verwalten der Quorumintegrität finden Sie unter WSFC-Quorummodi und Abstimmungskonfiguration (SQL Server).For more information on maintaining quorum health, see WSFC Quorum Modes and Voting Configuration (SQL Server).

Siehe auchSee Also

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