Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Sie die flexible Failoverrichtlinie für eine AlwaysOn-Verfügbarkeitsgruppe mithilfe von Transact-SQL oder PowerShell in SQL Server 2014 konfigurieren. Eine flexible Failoverrichtlinie bietet eine präzise Kontrolle über die Bedingungen, die zu einem automatischen Failover für eine Verfügbarkeitsgruppe führen. 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 Hochverfügbarkeit zu unterstützen.
> [!NOTE]
> The flexible failover policy of an availability group cannot be configured by using [!INCLUDE[ssManStudioFull](../../../includes/ssmanstudiofull-md.md)].
Bevor Sie beginnen
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 für synchrone Commits 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
Erlaubnisse
| Aufgabe | Erlaubnisse |
|---|---|
| Konfigurieren der flexiblen Failoverrichtlinie für eine neue Verfügbarkeitsgruppe | Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin und die CREATE AVAILABILITY GROUP-Serverberechtigung, ALTER ANY AVAILABILITY GROUP-Berechtigung oder CONTROL SERVER-Berechtigung. |
| Ändern der Richtlinie einer vorhandenen 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. |
Verwenden von Transact-SQL
So konfigurieren Sie die flexible Failoverrichtlinie
Stellen Sie eine Verbindung mit der Serverinstanz her, die das primäre Replikat hostet.
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 Failover-Bedingungsebene 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
AG1in 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 Niveau Automatisches Failover wird initiiert, wenn... 1 Eins der Server ausfällt. Der SQL Server-Dienst wird aufgrund eines Failovers oder Neustarts beendet. 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 Timeout der Integritätsprüfung wird überschritten, oder das aktuelle primäre Replikat weist einen fehlerhaften Status auf. 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 Vier ein mittelschwerer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein mittelschwerer Serverfehler auf. 5 Fünf eine qualifizierte Fehlerbedingung auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt eine qualifizierte Fehlerbedingung auf. Weitere Informationen zu den Failover-Bedingungsebenen finden Sie unter Flexible Failoverrichtlinie für automatisches Failover einer Verfügbarkeitsgruppe (SQL Server).
Um den Schwellenwert für das Timeout der Integritätsprüfung 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 30.000 Millisekunden (oder 30 Sekunden).
Mit der folgenden Transact-SQL-Anweisung wird z. B. der Schwellenwert für das Timeout der Integritätsprüfung einer vorhandenen Verfügbarkeitsgruppe mit dem Namen
AG1in 60.000 Millisekunden (eine Minute) geändert.ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
Mithilfe von PowerShell
So konfigurieren Sie die flexible Failoverrichtlinie**
Legen Sie die Standardeinstellung (
cd) auf die Serverinstanz fest, die das primäre Replikat hostet.Verwenden Sie das
New-SqlAvailabilityGroupCmdlet, wenn Sie einer Verfügbarkeitsgruppe ein Verfügbarkeitsreplikat hinzufügen. Verwenden Sie beim Ändern eines vorhandenen Verfügbarkeitsreplikats dasSet-SqlAvailabilityGroupCmdlet.Verwenden Sie zum Festlegen der Failoverbedingungsebene den
FailureConditionLevelLevelparameter , wobei die Ebene eines der folgenden Werte ist:Wert Niveau Automatisches Failover wird initiiert, wenn... OnServerDownEins der Server ausfällt. Der SQL Server-Dienst wird aufgrund eines Failovers oder Neustarts beendet. OnServerUnresponsiveZwei 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 Timeout der Integritätsprüfung wird überschritten, oder das aktuelle primäre Replikat weist einen fehlerhaften Status auf. OnCriticalServerErrordrei ein kritischer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein interner kritischer Serverfehler auf.
Dies ist der Standardebene.OnModerateServerErrorVier ein mittelschwerer Serverfehler auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt ein mittelschwerer Serverfehler auf. OnAnyQualifiedFailureConditionsFünf eine qualifizierte Fehlerbedingung auftritt. Der Wert der Bedingungsebene wird unterschritten, oder es tritt eine qualifizierte Fehlerbedingung auf. Weitere Informationen zu den 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
AG1in Ebene 1 geändert.Set-SqlAvailabilityGroup ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` -FailureConditionLevel OnServerDownUm den Schwellenwert für die Integritätsprüfung festzulegen, verwenden Sie den
HealthCheckTimeoutParameter n , wobei n eine ganze Zahl zwischen 15000 Millisekunden (15 Sekunden) und 4294967295 Millisekunden ist. Der Standardwert ist 30000 Millisekunden (oder 30 Sekunden).Mit dem folgenden Befehl wird z. B. der Schwellenwert für das Timeout der Integritätsprüfung der vorhandenen Verfügbarkeitsgruppe
AG1in 120.000 Millisekunden (zwei Minuten) geändert.Set-SqlAvailabilityGroup ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` -HealthCheckTimeout 120000
Hinweis
Verwenden Sie das Get-Help Cmdlet in der SQL Server PowerShell-Umgebung, um die Syntax eines Cmdlets anzuzeigen. Weitere Informationen finden Sie unter Get Help SQL Server PowerShell.
Einrichten und Verwenden des SQL Server PowerShell-Anbieters
Siehe auch
Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server)
Verfügbarkeitsmodi (AlwaysOn-Verfügbarkeitsgruppen)
Failover- und Failovermodi (AlwaysOn-Verfügbarkeitsgruppen)
Windows Server-Failover-Clustering (WSFC) mit SQL Server
Failover-Strategie für Failoverclusterinstanzen
sp_server_diagnostics (Transact-SQL)