Aktivieren eines verbesserten Datenbankfailovers für eine Datenbank in einer Always On-Verfügbarkeitsgruppe

Gilt für:SQL Server

SQL Server 2012 und 2014: Wenn eine Datenbank, die in einer Verfügbarkeitsgruppe auf dem primären Replikat enthalten ist, keine Transaktionen mehr schreiben kann, wird dadurch kein Failover ausgelöst, selbst wenn die Replikate synchronisiert und für automatisches Failover konfiguriert sind.

Mit SQL Server 2016 wird ein neues optionales Verhalten namens verbessertes Datenbank-Failover eingeführt, das entweder durch den Assistenten oder Transact-SQL festgelegt werden kann. Wenn diese Option aktiviert ist und automatisches Failover konfiguriert ist, wird ein Failover auf ein synchronisiertes Sekundärreplikat ausgelöst, wenn eine an einer Verfügbarkeitsgruppe beteiligte Datenbank nicht mehr in der Lage ist, Transaktionen zu schreiben.

Szenario 1

Eine Verfügbarkeitsgruppe wird zwischen Instanz A und Instanz B konfiguriert und enthält eine Datenbank namens DB1. Die Datendatei von DB1 befindet sich auf Laufwerk E und die Transaktionsprotokolldatei auf Laufwerk F. Der Verfügbarkeitsmodus ist auf synchronen Commit mit automatischem Failover festgelegt. Die neue Option für verbessertes Datenbank-Failover wird in der Verfügbarkeitsgruppe konfiguriert. Die beiden Replikate befinden sich aktuell in einem synchronisierten Status. Ein Problem verursacht einen Ausfall von Laufwerk E. Dieses Szenario wird kein verbessertes Datenbank-Failover verursachen, da sich das Transaktionsprotokoll nicht auf Laufwerk E befindet.

Wenn im obigen Szenario Fehler 823 viermal in Folge gemeldet wird und die Datenbankfailoveroption aktiviert ist, informiert SQL Server den Windows-Failovercluster, damit dieser auf Grundlage der Failoverrichtlinie der AG-Rolle geeignete Maßnahmen ergreift. Dies kann so konfiguriert werden, dass entweder ein Failover ausgeführt oder die Ressource neu gestartet wird.

Szenario 2

Dieses verfügt über die gleiche Verfügbarkeitsgruppenkonfiguration wie in Szenario 1. Statt dass Laufwerk E ausfällt, fällt dieses Mal das Transaktionsprotokoll-Laufwerk, Laufwerk F, aus. Dadurch wird ein Failover ausgelöst, da die Bedingung für ein verbessertes Datenbank-Failover erfüllt ist: Das Transaktionsprotokoll ist nicht erreichbar, was bedeutet, dass die Datenbank keine Transaktionen schreiben kann.

Szenario 3

Eine Verfügbarkeitsgruppe wird zwischen Instanz A und Instanz B konfiguriert und enthält zwei Datenbanken: DB1 und DB2. Der Verfügbarkeitsmodus ist auf synchronen Commit mit automatischem Failover-Modus festgelegt und das verbesserte Datenbank-Failover ist aktiviert. Der Zugriff auf die Festplatte, die die Daten und Transaktionsprotokolldateien von DB2 enthält, ist unterbrochen. Wenn das Problem erkannt wird, führt die Verfügbarkeitsgruppe automatisch ein Failover zu Instanz B aus.

Konfigurieren von verbessertem Failover

Das verbesserte Datenbank-Failover kann mithilfe von SQL Server Management Studio oder Transact-SQL konfiguriert werden. Die PowerShell-Cmdlets sind dazu derzeit nicht in der Lage. Standardmäßig ist das verbesserte Datenbank-Failover deaktiviert.

SQL Server Management Studio

Das Aktivieren des verbesserten Datenbank-Failovers ist während der Erstellung einer Verfügbarkeitsgruppe mithilfe von SQL Server Management Studio möglich. Die einzige Möglichkeit, es nach dem Erstellen der Verfügbarkeitsgruppe zu deaktivieren oder zu aktivieren, ist, Transact-SQL zu verwenden.

Manuelles Erstellen von Verfügbarkeitsgruppen

Verwenden Sie zum Erstellen der Verfügbarkeitsgruppe die Anweisungen im Artikel Use the New Availability Group Dialog Box (SQL Server Management Studio) (Verwenden des neuen Dialogfelds für Verfügbarkeitsgruppen (SQL Server Management Studio)). Um den verbesserten Datenbank-Failover zu aktivieren, aktivieren Sie das Kontrollkästchen neben Integritätserkennung auf Datenbankebene.

Verwenden des Assistenten für Verfügbarkeitsgruppen

Verwenden Sie die Anweisungen aus dem Artikel Verwenden des Assistenten für Verfügbarkeitsgruppen (SQL Server Management Studio). Die Option zum Aktivieren des erweiterten Datenbank-Failovers befindet sich im Dialogfeld „Namen der Verfügbarkeitsgruppe angeben“. Um dies zu aktivieren, markieren Sie das Kontrollkästchen neben Zustandserkennung auf Datenbankebene.

Transact-SQL

Um das erweiterte Datenbankfailoververhalten während der Erstellung einer Verfügbarkeitsgruppe zu konfigurieren, muss DB_FAILOVER wie folgt auf ON festgelegt werden:

CREATE AVAILABILITY GROUP [AGNAME]
WITH ( DB_FAILOVER = ON)
...

Um dieses Verhalten hinzuzufügen, nachdem eine Verfügbarkeitsgruppe konfiguriert wurde, verwenden Sie den ALTER AVAILABILITY GROUP Folgenden Befehl:

ALTER AVAILABILITY GROUP [AGNAME] SET (DB_FAILOVER = ON)

Um dieses Verhalten zu deaktivieren, geben Sie den folgenden ALTER AVAILABILITY GROUP Befehl aus:

ALTER AVAILABILITY GROUP [AGNAME] SET (DB_FAILOVER = OFF)

Dynamische Verwaltungsansicht

Fragen Sie die dynamische Verwaltungssicht sys.availability_groups ab, um anzuzeigen, ob das verbesserte Datenbank-Failover in einer Verfügbarkeitsgruppe aktiviert ist. Die Spalte db_failover enthält eine 0 (Null), wenn das Verhalten deaktiviert ist oder eine 1, wenn es aktiviert ist.

Nächste Schritte