Konfigurieren der flexiblen Failoverrichtlinie zum Steuern der Bedingungen für ein automatisches Failover (AlwaysOn-Verfügbarkeitsgruppen)

In diesem Thema wird beschrieben, wie die flexible Failoverrichtlinie für eine AlwaysOn-Verfügbarkeitsgruppe mithilfe von Transact-SQL oder PowerShell in SQL Server 2012 konfiguriert wird. Eine flexible Failoverrichtlinie ermöglicht eine präzise Kontrolle über die Bedingungen, die ein automatisches Failover für eine Verfügbarkeitsgruppe verursachen. 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.

  • Vorbereitungen:

    Einschränkungen beim automatischen Failover

    Voraussetzungen

    Sicherheit

  • Konfigurieren der flexiblen Failoverrichtlinie mit:

    Transact-SQL

    PowerShell

    HinweisHinweis

    Die flexible Failoverrichtlinie für eine Verfügbarkeitsgruppe kann nicht mit SQL Server Management Studio konfiguriert werden.

Vorbereitungen

Einschränkungen beim automatischen Failover

  • Damit ein automatisches Failover ausgeführt werden kann, müssen das aktuelle primäre Replikat und ein sekundäres Replikat für den Verfügbarkeitsmodus mit synchronem Commit und automatischem Failover konfiguriert und das sekundäre Replikat mit dem primären Replikat synchronisiert sein.

  • 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. 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. Der WSFC-Fehlerschwellenwert ist als maximale Anzahl von Fehlern definiert, die während eines bestimmten Zeitraums für die Verfügbarkeitsgruppe unterstützt werden. 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. Um den Fehlerschwellenwert für eine angegebene Verfügbarkeitsgruppe zu ändern, verwenden Sie die WSFC Failover Manager Console.

Voraussetzungen

  • Sie müssen mit der Serverinstanz verbunden sein, die das primäre Replikat hostet.

Sicherheit

Berechtigungen

Aufgabe

Berechtigungen

So konfigurieren Sie die flexible Failoverrichtlinie für eine neue Verfügbarkeitsgruppe

Erfordert die Mitgliedschaft in der festen sysadmin-Serverrolle und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung.

So ändern Sie die Richtlinie für eine vorhandene Verfügbarkeitsgruppe

Erfordert die ALTER AVAILABILITY GROUP-Berechtigung für die Verfügbarkeitsgruppe, die CONTROL AVAILABILITY GROUP-Berechtigung, die ALTER ANY AVAILABILITY GROUP-Berechtigung oder die CONTROL SERVER-Berechtigung.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwenden von Transact-SQL

So konfigurieren Sie die flexible Failoverrichtlinie

  1. Stellen Sie eine Verbindung mit der Serverinstanz her, die das primäre Replikat hostet.

  2. Für eine neue Verfügbarkeitsgruppe verwenden Sie die Transact-SQL-Anweisung CREATE AVAILABILITY GROUP. Verwenden Sie zum Ändern einer vorhandenen Verfügbarkeitsgruppe die Transact-SQL-Anweisung ALTER AVAILABILITY GROUP.

    • Um die Failoverbedingungsebene festzulegen, verwenden Sie die Option FAILURE_CONDITION_LEVEL = n, wobei n für eine ganze Zahl zwischen 1 und 5 steht.

      Beispielsweise wird mit der folgenden Transact-SQL-Anweisung die Fehlerbedingungsebene der vorhandenen Verfügbarkeitsgruppe AG1 in Ebene 1 geändert:

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1); 
      

      Diese ganzzahligen Werte stehen in folgender Beziehung zu den Fehlerbedingungsebenen:

      Transact-SQL-Wert

      Ebene

      Automatisches Failover wird initiiert, wenn...

      1

      1 (eins)

      der Server ausfällt. Wegen eines Failover oder Neustarts wird der SQL Server-Dienst beendet

      2

      2 (zwei)

      der Server nicht reagiert. Der Wert der Bedingungsebene wird unterschritten, der SQL Server-Dienst ist mit dem Cluster verbunden und der Schwellenwert für das Integritätsprüfungstimeout wird überschritten, oder das aktuelle primäre Replikat weist einen fehlerhaften Status auf.

      3

      3 (drei)

      ein kritischer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein interner kritischer Serverfehler auf.

      Dies ist der Standardebene.

      4

      4 (vier)

      ein mittelschwerer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein mittelschwerer Serverfehler auf.

      5

      5 (fünf)

      eine qualifizierte Fehlerbedingung auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt eine qualifizierte Fehlerbedingung auf.

      Weitere Informationen zu Failover-Bedingungsebenen finden Sie unter Flexible Failoverrichtlinie für automatisches Failover einer Verfügbarkeitsgruppe (SQL Server).

    • Um den Schwellenwert für das Integritätsprüfungstimeout zu konfigurieren, verwenden Sie die Option HEALTH_CHECK_TIMEOUT = n, wobei n für eine ganze Zahl zwischen 15000 Millisekunden (15 Sekunden) und 4294967295 Millisekunden steht. Der Standardwert ist 30000 Millisekunden (oder 30 Sekunden).

      Mit der folgenden Transact-SQL-Anweisung wird z. B. der Schwellenwert für das Integritätsprüfungstimeout einer vorhandenen Verfügbarkeitsgruppe mit dem Namen AG1 in 60.000 Millisekunden (eine Minute) geändert.

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
      

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwenden von PowerShell

So konfigurieren Sie die flexible Failoverrichtlinie

  1. Legen Sie den Standard (cd) auf die Serverinstanz fest, auf der das primäre Replikat gehostet wird.

  2. Wenn Sie einer Verfügbarkeitsgruppe ein Verfügbarkeitsreplikat hinzufügen, verwenden Sie das New-SqlAvailabilityGroup-Cmdlet. Wenn Sie ein vorhandenes Verfügbarkeitsreplikat ändern, verwenden Sie das Set-SqlAvailabilityGroup-Cmdlet.

    • Um die Failoverbedingungsebene festzulegen, verwenden Sie den FailureConditionLevel level-Parameter, wobei level für einen der folgenden Werte steht:

      Wert

      Ebene

      Automatisches Failover wird initiiert, wenn...

      OnServerDown

      1 (eins)

      der Server ausfällt. Wegen eines Failover oder Neustarts wird der SQL Server-Dienst beendet

      OnServerUnresponsive

      2 (zwei)

      der Server nicht reagiert. Der Wert der Bedingungsebene wird unterschritten, der SQL Server-Dienst ist mit dem Cluster verbunden und der Schwellenwert für das Integritätsprüfungstimeout wird überschritten, oder das aktuelle primäre Replikat weist einen fehlerhaften Status auf.

      OnCriticalServerError

      3 (drei)

      ein kritischer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein interner kritischer Serverfehler auf.

      Dies ist der Standardebene.

      OnModerateServerError

      4 (vier)

      ein mittelschwerer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein mittelschwerer Serverfehler auf.

      OnAnyQualifiedFailureConditions

      5 (fünf)

      eine qualifizierte Fehlerbedingung auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt eine qualifizierte Fehlerbedingung auf.

      Weitere Informationen zu Failover-Bedingungsebenen finden Sie unter Flexible Failoverrichtlinie für automatisches Failover einer Verfügbarkeitsgruppe (SQL Server).

      Beispielsweise wird mit dem folgenden Befehl die Fehlerbedingungsebene der vorhandenen Verfügbarkeitsgruppe AG1 in Ebene 1 geändert.

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` 
      -FailureConditionLevel OnServerDown
      
    • Um den Schwellenwert für das Integritätsprüfungstimeout festzulegen, verwenden Sie den HealthCheckTimeout n-Parameter, wobei n für eine ganze Zahl zwischen 15000 Millisekunden (15 Sekunden) und 4294967295 Millisekunden steht. Der Standardwert ist 30000 Millisekunden (oder 30 Sekunden).

      Mit dem folgenden Befehl wird z. B. der Schwellenwert für das Integritätsprüfungstimeout der vorhandenen Verfügbarkeitsgruppe AG1 in 120.000 Millisekunden (zwei Minuten) geändert.

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      
HinweisHinweis

Um die Syntax eines Cmdlets anzuzeigen, verwenden Sie das Get-Help-Cmdlet in der SQL Server PowerShell-Umgebung. Weitere Informationen finden Sie unter Aufrufen der SQL Server PowerShell-Hilfe.

Einrichten und Verwenden des SQL Server PowerShell-Anbieters

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Verweis

sp_server_diagnostics (Transact-SQL)

Konzepte

Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

Verfügbarkeitsmodi (AlwaysOn-Verfügbarkeitsgruppen)

Failover und Failovermodi (AlwaysOn-Verfügbarkeitsgruppen)

Windows Server-Failoverclustering (WSFC) mit SQL Server

Failoverrichtlinie für Failoverclusterinstanzen