Failover und Failovermodi (Always On-Verfügbarkeitsgruppen)Failover and Failover Modes (Always On Availability Groups)

Dieses Thema gilt für: JaSQL ServerkeineAzure SQL-DatenbankkeineAzure SQL Data Warehouse keine Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Im Kontext einer Verfügbarkeitsgruppe können die primäre und die sekundäre Rolle von Verfügbarkeitsreplikaten normalerweise im Rahmen des so genannten Failoversausgetauscht werden.Within the context of an availability group, the primary role and secondary role of availability replicas are typically interchangeable in a process known as failover. Failover können in drei Formen auftreten: automatisches Failover (ohne Datenverlust), geplantes manuelles Failover (ohne Datenverlust) und erzwungenes manuelles Failover (mit möglichem Datenverlust), welches in der Regel erzwungenes Failovergenannt wird.Three forms of failover exist: automatic failover (without data loss), planned manual failover (without data loss), and forced manual failover (with possible data loss), typically called forced failover. Beim automatischen und geplanten manuellen Failover bleiben alle Daten erhalten.Automatic and planned manual failover preserve all your data. Eine Verfügbarkeitsgruppe führt ein Failover auf der Ebene des Verfügbarkeitsreplikats aus.An availability group fails over at the availability-replica level. Das heißt, eine Verfügbarkeitsgruppe führt ein Failover auf eines ihrer sekundären Replikate (das aktuelle Failoverziel) aus.That is, an availability group fails over to one of its secondary replicas (the current failover target).

Hinweis

Probleme auf Datenbankebene, z. B. wenn eine Datenbank aufgrund des Verlusts einer Datendatei fehlerverdächtig wird, eine Datenbank gelöscht oder ein Transaktionsprotokoll beschädigt wird, führen nicht zum Failover einer Verfügbarkeitsgruppe.Issues at the database level, such as a database becoming suspect due to the loss of a data file, deletion of a database, or corruption of a transaction log, do not cause an availability group to failover.

Während des Failovers übernimmt das Failoverziel die primäre Rolle, stellt die zugehörigen Datenbanken wieder her und schaltet sie als neue primäre Datenbanken online.During the failover, the failover target takes over the primary role, recovers its databases, and brings them online as the new primary databases. Das frühere primäre Replikat (falls verfügbar) wechselt zur sekundären Rolle, und seine Datenbanken werden zu sekundären Datenbanken.The former primary replica, when available, switches to the secondary role, and its databases become secondary databases. Diese Rollen können in Reaktion auf wiederholte Fehler oder zu Verwaltungszwecken hin und her (bzw. zu einem anderen Failoverziel) gewechselt werden.Potentially, these roles can switch back and forth (or to a different failover target) in response to multiple failures or for administrative purposes.

Die von den einzelnen Verfügbarkeitsreplikaten unterstützten Failoverformen werden von der Eigenschaft Failovermodus angegeben.The form(s) of failover that a given availability replica supports is specified by the failover mode property. Die für die einzelnen Verfügbarkeitsreplikate möglichen Failovermodi hängen wie folgt vom Verfügbarkeitsmodus des Replikats ab:For a given availability replica, the possible failover modes depends on the availability mode of the replica, as follows:

  • Replikate mit synchronem Commit unterstützen zwei Einstellungen – automatisch oder manuell.Synchronous-commit replicas support two settings—automatic or manual. Die "automatische" Einstellung unterstützt sowohl automatisches Failover als auch manuelles Failover.The "automatic" setting supports both automatic failover and manual failover. Um Datenverluste zu vermeiden, muss das Failoverziel beim automatischen und geplanten Failover ein sekundäres Replikat mit synchronem Commit und fehlerfreiem Synchronisierungsstatus sein (was darauf hinweist, dass jede sekundäre Datenbank auf dem Failoverziel mit der entsprechenden primären Datenbank synchronisiert ist).To prevent data loss, automatic failover and planned failover require that the failover target be a synchronous-commit secondary replica with a healthy synchronization state (this indicates that every secondary database on the failover target is synchronized with its corresponding primary database). Wenn ein sekundäres Replikat keine dieser Bedingungen erfüllt, unterstützt es stets nur ein erzwungenes Failover.Whenever a secondary replica does not meet both of these conditions, it supports only forced failover. Beachten Sie, dass erzwungene Failover auch von Replikaten unterstützt werden, deren Rolle sich im RESOLVING-Status befindet.Note that forced failover is also supported a replicas whose role is in the RESOLVING state.

  • Replikate mit asynchronem Commit unterstützen nur den manuellen Failovermodus.Asynchronous-commit replicas support only the manual failover mode. Da sie nie synchronisiert werden, unterstützen sie nur erzwungene Failover.Moreover, because they are never synchronized, they support only forced failover.

Hinweis

Nach einem Failover müssen Clientanwendungen, die auf die primären Datenbanken zugreifen müssen, eine Verbindung mit dem neuen primären Replikat herstellen.After a failover, client applications that need to access the primary databases must connect to the new primary replica. Außerdem können schreibgeschützte Clientanwendungen, wenn das neue sekundäre Replikat für den schreibgeschützten Zugriff konfiguriert ist, eine Verbindung mit dem Replikat herstellen.Also, if the new secondary replica is configured to allow read-only access, read-only client applications can connect to it. Weitere Informationen dazu, wie Clients eine Verbindung zu Verfügbarkeitsgruppen herstellen, finden Sie unter Verfügbarkeitsgruppenlistener, Clientkonnektivität und Anwendungsfailover (SQL Server).For information about how clients connect to an availability group, see Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server).

Abschnitte in diesem Thema:Sections in This Topic:

Begriffe und DefinitionenTerms and Definitions

Automatisches FailoverAutomatic failover
Beim Verlust des primären Replikats tritt automatisch ein Failover statt.A failover that occurs automatically on the loss of the primary replica. Automatisches Failover wird nur unterstützt, wenn das aktuelle primäre Replikat und ein sekundäres Replikat so konfiguriert sind, dass der Failovermodus auf AUTOMATIC festgelegt ist und das sekundäre Replikat derzeit synchronisiert wird.Automatic failover is supported only when the current primary and one secondary replica are both configured with failover mode set to AUTOMATIC and the secondary replica currently synchronized. Wenn der Failovermodus entweder des primären oder des sekundären Replikats MANUAL ist, kann kein automatisches Failover auftreten.If the failover mode of either the primary or secondary replica is MANUAL, automatic failover cannot occur.

Geplantes manuelles Failover (ohne Datenverlust)Planned manual failover (without data loss)
Ein geplantes manuelles Failover oder manuelles Failoverist ein Failover, das in der Regel von einem Datenbankadministrator zu administrativen Zwecken initiiert wird.Planned manual failover, or manual failover, is a failover that is initiated by a database administrator, typically, for administrative purposes. Ein geplantes manuelles Failover wird nur unterstützt, wenn sowohl das primäre Replikat als auch das sekundäre Replikat für den Modus mit synchronem Commit konfiguriert sind und das sekundäre Replikat derzeit synchronisiert wird (im Status SYNCHRONIZED).A planned manual failover is supported only if both the primary replica and secondary replica are configured for synchronous-commit mode and the secondary replica is currently synchronized (in the SYNCHRONIZED state). Wenn das sekundäre Zielreplikat synchronisiert ist, ist ein manuelles Failover (ohne Datenverlust) selbst bei einem Absturz des primären Replikats möglich, da die sekundären Datenbanken für ein Failover bereit sind.When the target secondary replica is synchronized, manual failover (without data loss) is possible even if the primary replica has crashed because the secondary databases are ready for failover. Ein Datenbankadministrator initiiert manuell ein manuelles Failover.A database administrator manually initiates a manual failover.

Erzwungenes Failover (mit möglichem Datenverlust)Forced failover (with possible data loss)
Ein Failover, das von einem Datenbankadministrator initiiert werden kann, wenn kein sekundäres Replikat mit dem primären Replikat SYNCHRONISIERT ist oder das primäre Replikat nicht ausgeführt wird und kein sekundäres Replikat für ein Failover bereit ist.A failover that can be initiated by a database administrator when no secondary replica is SYNCHRONIZED with the primary replica or the primary replica is not running and no secondary replica is failover ready. Ein erzwungenes Failover birgt das Risiko möglicher Datenverluste und sollte nur für die Notfallwiederherstellung verwendet werden.Forced failover risks possible data loss and is recommended strictly for disaster recovery. Erzwungenes Failover ist auch als erzwungenes manuelles Failover bekannt, da es nur manuell initiiert werden kann.Forced failover is also known as forced manual failover because it can only be initiated manually. Dies ist der einzige Failovertyp, der im Verfügbarkeitsmodus für asynchrone Commits unterstützt wird.This is the only form of failover supported by in asynchronous-commit availability mode.

Satz automatischer FailoverAutomatic failover set
Ein Paar von Verfügbarkeitsreplikaten (einschließlich des aktuellen primären Replikats) in einer Verfügbarkeitsgruppe, die für den synchronem Commitmodus mit automatischem Failover konfiguriert sind (sofern zutreffend).Within a given availability group, a pair of availability replicas (including the current primary replica) that are configured for synchronous-commit mode with automatic failover, if any. Ein Satz automatischer Failoverautomatic failover setist nur wirksam, wenn das sekundäre Replikat derzeit mit dem primären Replikat SYNCHRONISIERT wird.An Satz automatischer Failoverautomatic failover settakes effect only if the secondary replica is currently SYNCHRONIZED with the primary replica.

Satz der Failover mit synchronem CommitSynchronous-commit failover set
Ein Satz von zwei oder drei Verfügbarkeitsreplikaten (einschließlich des aktuellen primären Replikats) in einer Verfügbarkeitsgruppe, die für den synchronen Commitmodus (falls zutreffend) konfiguriert sind.Within a given availability group, a set of two or three availability replicas (including the current primary replica) that are configured for synchronous-commit mode, if any. Ein Satz der Failover mit synchronem Commitsynchronous-commit failover setwird nur wirksam, wenn die sekundären Replikate für den manuellen Failovermodus konfiguriert sind und mindestens ein sekundäres Replikat derzeit mit dem primären Replikat SYNCHRONISIERT ist.A Satz der Failover mit synchronem Commitsynchronous-commit failover settakes effect only if the secondary replicas are configured for manual failover mode and at least one secondary replica is currently SYNCHRONIZED with the primary replica.

Satz für gesamtes FailoverEntire failover set
Innerhalb einer angegebenen Verfügbarkeitsgruppe der Satz aller Verfügbarkeitsreplikate, deren Betriebszustand gerade ONLINE ist, unabhängig vom Verfügbarkeitsmodus und Failovermodus.Within a given availability group, the set of all availability replicas whose operational state is currently ONLINE, regardless of availability mode and of failover mode. Der Satz für gesamtes Failoverentire failover setwird relevant, wenn gerade kein sekundäres Replikat mit dem primären Replikat SYNCHRONISIERT wird.The Satz für gesamtes Failoverentire failover setbecomes relevant when no secondary replica is currently SYNCHRONIZED with the primary replica.

Übersicht über FailoverOverview of Failover

In der folgenden Tabelle ist zusammengefasst, welche Failovertypen unter unterschiedlichen Verfügbarkeits- und Failovermodi unterstützt werden.The following table summarizes which forms of failover are supported under different availability and failover modes. Für jede Paarung ergibt sich der effektive Verfügbarkeitsmodus und Failovermodus aus der Schnittmenge der Modi des primären Replikats sowie der Modi eines oder mehrerer sekundärer Replikate.For each pairing, the effective availability mode and failover mode is determined by the intersection of the modes of the primary replica plus the modes of one or more secondary replicas.

Asynchroner Commit-ModusAsynchronous-commit mode Synchroner Commit-Modus mit manuellem FailovermodusSynchronous-commit mode with manual-failover mode Synchroner Commit-Modus mit automatischem FailovermodusSynchronous-commit mode with automatic-failover mode
Automatisches FailoverAutomatic failover neinNo neinNo jaYes
Geplantes manuelles FailoverPlanned manual failover neinNo jaYes jaYes
erzwungenes FailoverForced failover jaYes jaYes Ja\Yes****

\Wenn Sie einen Befehl für ein erzwungenes Failover für ein synchronisiertes sekundäres Replikat ausgeben, verhält sich das sekundäre Replikat genauso wie bei einem manuellen Failover.****If you issue a forced failover command on a synchronized secondary replica, the secondary replica behaves the same as for a manual failover.

Die Zeitdauer, für die Datenbank während eines Failovers nicht verfügbar ist, hängt vom Failovertyp und seiner Ursache ab.The amount of time that the database is unavailable during a failover depends on the type of failover and its cause.

Wichtig

Um Clientverbindungen außer für eigenständige Datenbanken nach dem Failover zu unterstützen, müssen auf einer früheren primären Datenbank definierte Anmeldungen und Aufträge für die neue primäre Datenbank manuell neu erstellt werden.To support client connections after failover, except for contained databases, logins and jobs defined on any of the former primary databases must be manually recreated on the new primary database. Weitere Informationen finden Sie unter Verwaltung von Anmeldungen und Aufträgen für die Datenbanken einer Verfügbarkeitsgruppe (SQL Server)ausgetauscht werden.For more information, see Management of Logins and Jobs for the Databases of an Availability Group (SQL Server).

FailoversätzeFailover Sets

Welche Failoverarten für eine bestimmte Verfügbarkeitsgruppe möglich sind, richtet sich nach dem jeweiligen Failoversatz.The forms of failover that are possible for a given availability group can be understood in terms of failover sets. Ein Failoversatz besteht aus dem primären Replikat und den sekundären Replikaten, die eine bestimmte, im Folgenden beschriebene Failoverart unterstützen:A failover set consists of the primary replica and secondary replicas that support a given form of failover, as follows:

  • Satz automatischer FailoverAutomatic failover set (optional): Ein Paar von Verfügbarkeitsreplikaten (einschließlich des aktuellen primären Replikats) in einer Verfügbarkeitsgruppe, die für den synchronen Commitmodus mit automatischem Failover (falls zutreffend) konfiguriert sind. Satz automatischer FailoverAutomatic failover set (optional): Within a given availability group, a pair of availability replicas (including the current primary replica) that are configured for synchronous-commit mode with automatic failover, if any. Ein automatisches Failover ist nur wirksam, wenn das sekundäre Replikat derzeit mit dem primären Replikat synchronisiert wird.An automatic failover set takes effect only if the secondary replica is currently SYNCHRONIZED with the primary replica.

  • Satz der Failover mit synchronem CommitSynchronous-commit failover set (optional): Ein Satz von zwei oder drei Verfügbarkeitsreplikaten (einschließlich des aktuellen primären Replikats) in einer Verfügbarkeitsgruppe, die für den synchronen Commitmodus (falls zutreffend) konfiguriert sind. Satz der Failover mit synchronem CommitSynchronous-commit failover set (optional): Within a given availability group, a set of two or three availability replicas (including the current primary replica) that are configured for synchronous-commit mode, if any. Ein Failover mit synchronem Commit ist nur wirksam, wenn die sekundären Replikate für den manuellen Failovermodus konfiguriert sind und mindestens ein sekundäres Replikat derzeit mit dem primären Replikat synchronisiert wird.A synchronous-commit failover set takes effect only if the secondary replicas are configured for manual failover mode and at least one secondary replica is currently SYNCHRONIZED with the primary replica.

  • Satz für gesamtes FailoverEntire failover set : Der Satz aller Verfügbarkeitsreplikate in einer Verfügbarkeitsgruppe, deren Betriebszustand derzeit ONLINE lautet, unabhängig vom Verfügbarkeitsmodus und Failovermodus. Satz für gesamtes FailoverEntire failover set : Within a given availability group, the set of all availability replicas whose operational state is currently ONLINE, regardless of availability mode and of failover mode. Der Satz für gesamtes Failover wird relevant, wenn derzeit kein sekundäres Replikat mit dem primären Replikat synchronisiert wird.The entire failover set becomes relevant when no secondary replica is currently SYNCHRONIZED with the primary replica.

    Wenn Sie ein Verfügbarkeitsreplikat für synchrone Commits mit automatischem Failover konfigurieren, wird das Verfügbarkeitsreplikat Teil von Satz automatischer Failoverautomatic failover set.When you configure an availability replica as synchronous commit with automatic failover, the availability replica becomes part of the Satz automatischer Failoverautomatic failover set. Ob jedoch der Satz wirksam wird, hängt vom aktuellen primären Element ab.However whether the set takes effect depends the current primary. Die Failovertypen, die tatsächlich zu einem bestimmten Zeitpunkt möglich sind, hängen davon ab, welche Failoversätze aktuell wirksam sind.The forms of failover that are actually possible at a given time depends on what failover sets are currently in effect.

    Betrachten Sie z. B. eine Verfügbarkeitsgruppe mit vier Verfügbarkeitsreplikaten:For example, consider an availability group that has four availability replicas, as follows:

ReplikatReplica Verfügbarkeitsmodus- und Failovermodus-EinstellungenAvailability Mode and Failover Mode Settings
EinA Synchroner Commit mit automatischem FailoverSynchronous commit with automatic failover
BB Synchroner Commit mit automatischem FailoverSynchronous commit with automatic failover
CC Synchroner Commit nur mit geplantem manuellem FailoverSynchronous commit with planned manual failover only
DD Asynchroner Commit (nur mit erzwungenem Failover)Asynchronous commit (with only forced failover)

Das Failoververhalten für jedes sekundäre Replikat hängt davon ab, welches Verfügbarkeitsreplikat gerade das primäre Replikat ist.The failover behavior for each secondary replica depends on which availability replica is currently the primary replica. Grundsätzlich ist für ein bestimmtes sekundäres Replikat das Failoververhalten der schlimmste Fall angesichts des aktuellen primären Replikats.Basically, for a given secondary replica, the failover behavior is the worst case given the current primary replica. In der folgenden Abbildung wird veranschaulicht, wie das Failoververhalten des sekundären Replikats in Abhängigkeit des aktuellen primären Replikats variiert und ob es für den asynchronen (nur mit erzwungenem Failover) oder den synchronen Commit-Modus (mit oder ohne manuellem Failover) konfiguriert ist.The following figure illustrates how the failover behavior of secondary replicas varies depending on the current primary replica, and whether it is configured for asynchronous-commit mode (with only forced failover) or synchronous-commit mode (with or without automatic failover).

Auswirkungen der Konfiguration des primären Replikats auf das FailoverHow primary replica configuration affects failover

Automatic FailoverAutomatic Failover

Ein automatisches Failover verursacht den automatischen Übergang eines qualifizierten sekundären Replikats zur primären Rolle, nachdem das primäre Replikat nicht mehr zur Verfügung steht.An automatic failover causes a qualified secondary replica to automatically transition to the primary role after the primary replica becomes unavailable. Ein automatisches Failover ist am besten geeignet, wenn der WSFC-Knoten, der das primäre Replikat hostet, lokal zum Knoten ist, der das sekundäre Replikat hostet.Automatic failover is best suited when the WSFC node that hosts the primary replica is local to the node that hosts the secondary replica. Das liegt daran, dass die Datensynchronisierung am besten bei niedrigen Nachrichtenlatenzzeiten zwischen Computern funktioniert und weil Clientverbindungen lokal hergestellt werden können.This is because data synchronization works best with low message latency between computers and because client connections can remain local.

In diesem Abschnitt:In This Section:

Für ein automatisches Failover erforderliche BedingungenConditions Required for an Automatic Failover

Ein automatisches Failover tritt nur unter den folgenden Bedingungen auf:Automatic failover occurs only under the following conditions:

  • Ein Satz für automatische Failover ist vorhanden.An automatic failover set exists. Dieser Satz besteht aus einem primären und einem sekundären Replikat (dem Ziel des automatischen Failovers), die beide für den synchronen Commitmodus konfiguriert sind und auf ein automatisches Failover (AUTOMATIC) festgelegt sind.This set consists of a primary replica and a secondary replica (the automatic failover target) that are both configured for synchronous-commit mode and set to AUTOMATIC failover. Wenn das primäre Replikat auf manuelle Failover (MANUAL) festgelegt ist, kann selbst dann kein automatisches Failover ausgeführt werden, wenn ein sekundäres Replikat auf ein automatisches Failover (AUTOMATIC) festgelegt ist.If the primary replica is set to MANUAL failover, automatic failover cannot occur, even if a secondary replica is set to AUTOMATIC failover.

    Weitere Informationen finden Sie unter Verfügbarkeitsmodi (Always On-Verfügbarkeitsgruppen)ausgetauscht werden.For more information, see Availability Modes (Always On Availability Groups).

  • Das Ziel des automatischen Failovers weist einen fehlerfreien Synchronisierungsstatus auf (das heißt, dass jede sekundäre Datenbank im Failoverziel mit ihrer entsprechenden primären Datenbank synchronisiert wird).The automatic failover target has a healthy synchronization state (this indicates that every secondary database on the failover target is synchronized with its corresponding primary database).

    Tipp

    Durch Always On-Verfügbarkeitsgruppen wird die Integrität beider Replikate in einem Satz für automatische Failover überwacht.Always On Availability Groups monitors the health of both replicas in an automatic failover set. Wenn eines der Replikate fehlerhaft ist, wird der Zustand der Verfügbarkeitsgruppe auf CRITICAL festgelegt.If either replica fails, the availability group's health state is set to CRITICAL. Wenn das sekundäre Replikat fehlerhaft ist, kann kein automatisches Failover ausgeführt werden, da das Ziel für das automatische Failover nicht verfügbar ist.If the secondary replica fails, automatic failover is not possible because the automatic failover target is unavailable. Wenn das primäre Replikat fehlerhaft ist, wird für die Verfügbarkeitsgruppe ein Failover auf das sekundäre Replikat ausgeführt.If the primary replica fails, the availability group will fail over to the secondary replica. Für das automatische Failover ist erst wieder ein Ziel verfügbar, nachdem das vorherige primäre Replikat online geschaltet wurde.Until the former primary replica comes online, no automatic failover target exists. Um für den unwahrscheinlichen Fall, dass ein Folgefehler auftritt, in beiden Situationen Verfügbarkeit zu gewährleisten, wird empfohlen, ein anderes sekundäres Replikat als Ziel für das automatische Failover zu konfigurieren.In either case, to ensure availability in the unlikely case of a sequential failure, we recommend that you configure a different secondary replica as the automatic failover target.

    Weitere Informationen finden Sie unter Verwenden von Always On-Richtlinien zum Anzeigen des Zustands einer Verfügbarkeitsgruppe (SQL Server) und Ändern des Failovermodus eines Verfügbarkeitsreplikats (SQL Server).For more information, see Use Always On Policies to View the Health of an Availability Group (SQL Server) and Change the Failover Mode of an Availability Replica (SQL Server).

  • Der WSFC-Cluster (Windows Server Failover Clustering) verfügt über ein Quorum.The Windows Server Failover Clustering (WSFC) cluster has quorum. Weitere Informationen finden Sie unter WSFC-Quorummodi und Abstimmungskonfiguration (SQL Server).For more information, see WSFC Quorum Modes and Voting Configuration (SQL Server).

  • Das primäre Replikat steht nicht mehr zur Verfügung, und die durch die flexible Failoverrichtlinie definierten Failover-Bedingungsebenen wurden erfüllt.The primary replica has become unavailable, and the failover-condition levels defined by your the flexible failover policy have been met. Informationen zu Failover-Bedingungsebenen finden Sie unter Flexible Failoverrichtlinie für automatisches Failover einer Verfügbarkeitsgruppe (SQL Server)ausgetauscht werden.For information about failover-condition levels, see Flexible Failover Policy for Automatic Failover of an Availability Group (SQL Server).

So funktioniert ein automatisches FailoverHow Automatic Failover Works

Durch ein automatisches Failover wird die folgende Aktionskette ausgelöst:An automatic failover initiates the following sequence of actions:

  1. Wenn die Serverinstanz, die das aktuelle primäre Replikat hostet, immer noch ausgeführt wird, ändert sie den Status der primären Datenbanken in DISCONNECTED und trennt alle Clientverbindungen.If the server instance that is hosting the current primary replica is still running, it changes the state of the primary databases to DISCONNECTED and disconnects all clients.

  2. Wenn Protokolldatensätze in Wiederherstellungswarteschlangen auf dem sekundären Zielreplikat warten, wendet das sekundäre Replikat die verbleibenden Protokolldatensätze an, um das Rollforward der sekundären Datenbanken fertig zu stellen.If any log records are waiting in recovery queues on the target secondary replica, the secondary replica applies the remaining log records to finish rolling forward the secondary databases.

    Hinweis

    Die zum Anwenden des Protokolls auf eine bestimmte Datenbank erforderliche Zeit hängt von der Systemgeschwindigkeit, der aktuellen Arbeitsauslastung und der Menge an Protokollen in der Wiederherstellungswarteschlange ab.The amount of time required to apply the log to a given database depends on the speed of the system, the recent work load, and the amount of log in the recovery queue.

  3. Das frühere sekundäre Replikat geht in die primäre Rolle über.The former secondary replica transitions to the primary role. Seine Datenbanken werden die primären Datenbanken.Its databases become the primary databases. Das neue primäre Replikat führt so schnell wie möglich ein Rollback für alle Transaktionen aus, für die kein Commit ausgeführt wurde (die Rollbackphase der Wiederherstellung).The new primary replica rolls back any uncommitted transactions (the undo phase of recovery) as quickly as possible. Diese Transaktionen, für die kein Commit ausgeführt wurde, werden durch Sperren isoliert und ermöglichen ein Rollback im Hintergrund, während Clients die Datenbank verwenden.Locks isolate these uncommitted transactions, allowing roll back to occur in the background while clients use the database. Für Transaktionen, für die ein Commit ausgeführt wurde, wird dabei kein Rollback durchgeführt.This process does not roll back any committed transactions.

    Bis eine angegebene sekundäre Datenbank verbunden wird, ist sie kurzfristig als NOT_SYNCHRONIZED markiert.Until a given secondary database is connected, it is briefly marked as NOT_SYNCHRONIZED. Bevor die Rollbackwiederherstellung gestartet wird, können sekundäre Datenbanken eine Verbindung mit den neuen primären Datenbanken herstellen und schnell in den Status SYNCHRONIZED übergehen.Before the rollback recovery starts, secondary databases can connect to the new primary databases and quickly transition to the SYNCHRONIZED state. Der Idealfall für ein drittes Replikat mit synchronem Commit besteht normalerweise darin, dass das Replikat nach dem Failover in der sekundären Rolle verbleibt.The best case is usually for a third synchronous-commit replica that remains in the secondary role after the failover.

  4. Später, wenn die Serverinstanz, die das frühere primäre Replikat hostet, neu gestartet wird, erkennt sie, dass jetzt ein anderes Verfügbarkeitsreplikat die primäre Rolle besitzt.Later, when the server instance that is hosting the former primary replica restarts, it recognizes that another availability replica now owns the primary role. Das frühere primäre Replikat geht in die sekundäre Rolle über, und seine Datenbanken werden sekundäre Datenbanken.The former primary replica transitions to the secondary role, and its databases become secondary databases. Das neue sekundäre Replikat stellt eine Verbindung mit dem aktuellen primären Replikat her und fängt seine Datenbank so schnell wie möglich bis zu den aktuellen primären Datenbanken ab.The new secondary replica connects to the current primary replica and catches its database up to the current primary databases as quickly as possible. Sobald das neue sekundäre Replikat seine Datenbanken erneut synchronisiert hat, ist ein neues Failover in umgekehrter Richtung möglich.As soon as the new secondary replica has resynchronized its databases, failover is again possible, in the reverse direction.

So konfigurieren Sie ein automatisches FailoverTo Configure Automatic Failover

Ein Verfügbarkeitsreplikat kann konfiguriert werden, um ein automatisches Failover jederzeit zu unterstützen.An availability replica can be configured to support automatic failover at any point.

To configure automatic failoverTo configure automatic failover

  1. Stellen Sie sicher, dass das sekundäre Replikat konfiguriert ist, um den Verfügbarkeitsmodus mit synchronem Commit zu verwenden.Ensure that the secondary replica is configured to use the synchronous-commit availability mode. Weitere Informationen finden Sie unter Ändern des Verfügbarkeitsmodus eines Verfügbarkeitsreplikats (SQL Server)ausgetauscht werden.For more information, see Change the Availability Mode of an Availability Replica (SQL Server).

  2. Legen Sie den Failovermodus auf automatisch fest.Set the failover mode to automatic. Weitere Informationen finden Sie unter Ändern des Failovermodus eines Verfügbarkeitsreplikats (SQL Server)ausgetauscht werden.For more information, see Change the Failover Mode of an Availability Replica (SQL Server).

  3. Ändern Sie optional die flexible Failoverrichtlinie der Verfügbarkeitsgruppe, und geben Sie die Fehlerarten an, durch die ein automatisches Failover verursacht werden kann.Optionally, change the flexible failover policy of the availability group to specify the sorts of failures that can cause an automatic failover to occur. Weitere Informationen finden Sie unter Konfigurieren der flexiblen Failoverrichtlinie zum Steuern der Bedingungen für ein automatisches Failover (Always On-Verfügbarkeitsgruppen) und Failoverrichtlinie für Failoverclusterinstanzenausgetauscht werden.For more information, see Configure the Flexible Failover Policy to Control Conditions for Automatic Failover (Always On Availability Groups) and Failover Policy for Failover Cluster Instances.

Geplantes manuelles Failover (ohne Datenverlust)Planned Manual Failover (Without Data Loss)

Bei einem manuellen Failover geht ein synchronisiertes sekundäres Replikat zur primären Rolle über, nachdem ein Datenbankadministrator einen Befehl für ein manuelles Failover auf der Serverinstanz ausgibt, die das sekundäre Zielreplikat hostet.A manual failover causes a synchronized secondary replica to transition to the primary role after a database administrator issues a manual-failover command on the server instance that hosts the target secondary replica. Zur Unterstützung eines manuellen Failovers müssen das sekundäre Replikat und das aktuelle primäre Replikat für den synchronen Commitmodus (falls zutreffend) konfiguriert sein.To support manual failover, the secondary replica and the current primary replica must both be configured for synchronous-commit mode, if any. Jede sekundäre Datenbank auf dem Verfügbarkeitsreplikat muss mit der Verfügbarkeitsgruppe verknüpft und mit der entsprechenden primären Datenbank synchronisiert werden (d. h., das sekundäre Replikat muss synchronisiert werden).Every secondary database on the availability replica must be joined to the availability group and synchronized with its corresponding primary database (that is, the secondary replica must be synchronized). Damit wird sichergestellt, dass ein Commit für jede Transaktion, für die ein Commit auf einer früheren primären Datenbank ausgeführt wurde, auch auf der neuen primären Datenbank ausgeführt wurde.This guarantees that every transaction that was committed on a former primary database has also been committed on the new primary database. Daher sind die neuen primären Datenbanken mit den alten primären Datenbanken identisch.Therefore, the new primary databases are identical to the old primary databases.

In der folgenden Abbildung werden die Phasen eines geplanten Failovers veranschaulicht:The following figure illustrates the stages of a planned failover:

  1. Vor dem Failover wird das primäre Replikat von der Serverinstanz auf Node01gehostet.Before the failover, the primary replica is hosted by the server instance on Node01.

  2. Ein Datenbankadministrator initiiert ein geplantes Failover.A database administrator initiates a planned failover. Das Failoverziel ist das von der Serverinstanz auf Node02gehostete Verfügbarkeitsreplikat.The failover target is the availability replica hosted by the server instance on Node02.

  3. Das Failoverziel (auf Node02) wird zum neuen primären Replikat.The failover target (on Node02) becomes the new primary replica. Da dies ein geplantes Failover ist, wechselt das frühere primäre Replikat während des Failovers zur sekundären Rolle und schaltet die zugehörigen Datenbanken unmittelbar als sekundäre Datenbanken online.Because this is a planned failover, the former primary replica switches to the secondary role during the failover and brings its databases online as secondary databases immediately.

    Abbildung eines geplanten manuellen FailoversIllustation of a planned manual failover

    In diesem Abschnitt:In This Section:

Für ein manuelles Failover erforderliche BedingungenConditions Required for a Manual Failover

Um ein manuelles Failover zu unterstützen, muss das aktuelle primäre Replikat auf den Modus mit synchronem Commit festgelegt werden, und ein sekundäres Replikat muss folgende Bedingungen erfüllen:To support a manual failover, the current primary replica must be set to synchronous-commit mode and a secondary replica must be:

  • Konfiguriert für den Modus mit synchronem Commit.Configured for synchronous-commit mode.

  • Derzeit mit dem primären Replikat synchronisiert.Currently synchronized with the primary replica.

    Um ein Failover einer Verfügbarkeitsgruppe manuell auszuführen, müssen Sie mit dem sekundären Replikat verbunden sein, das das neue primäre Replikat wird.To manually fail over an availability group, you must be connected to the secondary replica that is to become the new primary replica.

Funktionsweise eines geplanten manuellen FailoversHow a Planned Manual Failover Works

Ein geplantes manuelles Failover, das auf dem sekundären Zielreplikat initiiert werden muss, initiiert die folgende Aktionskette:A planned manual failover, which must be initiated on the target secondary replica, initiates the following sequence of actions:

  1. Um sicherzustellen, dass keine neuen Benutzertransaktionen auf den ursprünglichen primären Datenbanken auftreten, sendet der WSFC-Cluster eine Anforderung an das primäre Replikat, in den Offlinemodus zu wechseln.To ensure that no new user transactions occur on the original primary databases, the WSFC cluster sends a request to the primary replica to go offline.

  2. Wenn ein Protokoll in die Wiederherstellungswarteschlange einer sekundären Datenbank wartet, stellt das sekundäre Replikat das Rollforward dieser sekundären Datenbank fertig.If any log is waiting in the recovery queue of any secondary database, the secondary replica finishes rolling forward that secondary database. Die erforderliche Zeit hängt von der Systemgeschwindigkeit, der aktuellen Arbeitsauslastung und der Menge der Protokolle in der Wiederherstellungswarteschlange ab.The amount of time required depends on the speed of the system, the recent workload, and the amount of log in the recovery queue. Um die aktuelle Größe der Wiederherstellungswarteschlange festzustellen, verwenden Sie den Leistungsindikator Recovery Queue .To learn the current size of the recovery queue, use the Recovery Queue performance counter. Weitere Informationen finden Sie unter SQL Server, Datenbankreplikat.For more information, see SQL Server, Database Replica.

    Hinweis

    Die Failoverzeit kann durch die Begrenzung der Größe der Wiederherstellungswarteschlange reguliert werden.The failover time can be regulated by limiting the size of the recovery queue. Das führt allerdings möglicherweise zu einem langsameren primären Replikat, damit vom sekundären Replikat die Geschwindigkeit gehalten werden kann.However, this can cause the primary replica to slow down to allow the secondary replica to keep up.

  3. Das sekundäre Replikat wird das neue primäre Replikat, und das frühere primäre Replikat wird das neue sekundäre Replikat.The secondary replica becomes the new primary replica, and the former primary replica becomes the new secondary replica.

  4. Das neue primäre Replikat führt für alle Transaktionen, für die noch kein Commit ausgeführt wurde, ein Rollback aus und schaltet seine Datenbanken als primären Datenbanken online. Alle sekundäre Datenbanken werden kurz als NICHT SYNCHRONISIERT markiert, bis sie eine Verbindung mit den neuen primären Datenbanken herstellen und damit synchronisiert werden können.The new primary replica rolls back any uncommitted transactions and brings its databases online as the primary databases.All secondary databases are briefly marked as NOT SYNCHRONIZED until they connect and resynchronize to the new primary databases. Für Transaktionen, für die ein Commit ausgeführt wurde, wird dabei kein Rollback durchgeführt.This process does not roll back any committed transactions.

  5. Wenn das frühere primäre Replikat wieder online geschaltet wird, nimmt es die sekundäre Rolle an, und die frühere primäre Datenbank wird zur sekundären Datenbank.When the former primary replica comes back online, it takes on the secondary role, and the former primary database becomes the secondary database. Das neue sekundäre Replikat synchronisiert schnell die neuen sekundären Datenbanken erneut mit den entsprechenden primären Datenbanken.The new secondary replica quickly resynchronizes the new secondary databases with the corresponding primary databases.

    Hinweis

    Sobald das neue sekundäre Replikat die Datenbanken erneut synchronisiert hat, ist ein neues Failover möglich, allerdings in umgekehrter Richtung.As soon as the new secondary replica has resynchronized the databases, failover is again possible, but in the reverse direction.

    Nach dem Failover müssen von Clients erneut Verbindungen mit der aktuellen primären Datenbank hergestellt werden.After failover, clients must reconnect to the current primary database. Weitere Informationen finden Sie unter Verfügbarkeitsgruppenlistener, Clientkonnektivität und Anwendungsfailover (SQL Server)wichtig sind.For more information, see Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server).

Aufrechterhalten der Verfügbarkeit während UpgradesMaintaining Availability During Upgrades

Der Datenbankadministrator für die Verfügbarkeitsgruppen kann die Datenbankverfügbarkeit mithilfe von manuellen Failovers aufrechterhalten, wenn Sie Hardware oder Software aktualisieren.The database administrator for your availability groups can use manual failovers to maintain database availability when you upgrade hardware or software. Um eine Verfügbarkeitsgruppe für Softwareupgrades zu verwenden, muss die Serverinstanz und/oder der Computerknoten, der das sekundäre Zielreplikat hostet, die Upgrades bereits empfangen haben.To use an availability group for software upgrades, the server instance and/or computer node that hosts the target secondary replica must have already received the upgrades. Weitere Informationen finden Sie unter Upgraden von Always On-Verfügbarkeitsgruppen-Replikatsinstanzen.For more information, see Upgrading Always On Availability Group Replica Instances.

Erzwungenes Failover (mit möglichem Datenverlust)Forced Failover (with Possible Data Loss)

Das Erzwingen eines Failovers einer Verfügbarkeitsgruppe (mit möglichem Datenverlust) ist eine Notfallwiederherstellungsmethode, mit der Sie ein sekundäres Replikat als betriebsbereiten Standbyserver verwenden können. Da das Erzwingen eines Failovers zu möglichem Datenverlust führen kann, sollte diese Methode unter Vorbehalt und selten verwendet werden.Forcing failover of an availability group (with possible data loss) is a disaster recovery method that allows you to use a secondary replica as a warm standby server.Because forcing failover risks possible data loss, it should be used cautiously and sparingly. Es wird empfohlen, das Failover nur dann zu erzwingen, wenn Sie den Dienst für die Verfügbarkeitsdatenbanken sofort wiederherstellen müssen und bereit sind, das Risiko des Datenverlustes in Kauf zu nehmen.We recommend forcing failover only if you must restore service to your availability databases immediately and are willing to risk losing data. Weitere Informationen zu den Voraussetzungen und Empfehlungen zum Erzwingen eines Failovers sowie ein Beispielszenario, in dem zur Wiederherstellung nach einem schwerwiegenden Fehler ein erzwungenes Failover verwendet wird, finden Sie unter Ausführen eines erzwungenen manuellen Failovers einer Verfügbarkeitsgruppe (SQL Server)ausgetauscht werden.For more information about the prerequisites and recommendations for forcing failover and for an example scenario that uses a forced failover to recover from a catastrophic failure, see Perform a Forced Manual Failover of an Availability Group (SQL Server).

Warnung

Für das Erzwingen eines Failovers muss der WSFC-Cluster über Quorum verfügen.Forcing failover requires that the WSFC cluster have quorum. Informationen zum Konfigurieren und das Erzwingen des Quorums finden Sie unter Windows Server-Failoverclustering (WSFC) mit SQL Serverausgetauscht werden.For information about configuring quorum and forcing quorum, see Windows Server Failover Clustering (WSFC) with SQL Server.

In diesem Abschnitt:In This Section:

So funktioniert ein erzwungenes FailoverHow Forced Failover Works

Durch ein erzwungenes Failover wird der Wechsel der primären Rolle zu einem Zielreplikat initiiert, dessen Rolle sich im SECONDARY- oder RESOLVING-Status befindet.Forcing failover initiates a transition of the primary role to a target replica whose role is in the SECONDARY or RESOLVING state. Das Failoverziel wird zum neuen primären Replikat und stellt seine Datenbankkopien sofort den Clients zur Verfügung.The failover target becomes the new primary replica and immediately serves its copies of the databases to clients. Wenn das frühere primäre Replikat verfügbar wird, geht es in die sekundäre Rolle über, und seine Datenbanken werden sekundäre Datenbanken.When the former primary replica becomes available, it will transition to the secondary role and its databases will become secondary databases.

Alle sekundären Datenbanken (einschließlich der früheren primären Datenbanken, wenn sie verfügbar werden) haben den Status SUSPENDED.All secondary databases (including the former primary databases, when they become available) are SUSPENDED. In Abhängigkeit früherer Datensynchronisierungsstatus einer angehaltenen sekundären Datenbank empfiehlt es sich möglicherweise, fehlende übergebene Daten für die primäre Datenbank zu retten.Depending on the previous data synchronization state of a suspended secondary database, it might be suitable for salvaging missing committed data for that primary database. Auf einem sekundären Replikat, das für schreibgeschützten Zugriff konfiguriert ist, können Sie die sekundären Datenbanken abfragen, um fehlende Daten manuell zu ermitteln.On a secondary replica that is configured for read-only access, you can query the secondary databases to manually discover missing data. Danach können Sie Transact-SQLTransact-SQL -Anweisungen ausgeben, um alle notwendigen Änderungen für die neuen primären Datenbanken vorzunehmen.Then you can issue Transact-SQLTransact-SQL statements on the new primary databases to make any necessary changes.

Risiken beim Erzwingen des FailoversRisks of Forcing Failover

Sie sollten unbedingt bedenken, dass durch das Erzwingen des Failovers Daten verloren gehen können.It is essential to understand that forcing failover can cause data loss. Zu einem Datenverlust kann es kommen, weil das Zielreplikat nicht mit dem primären Replikat kommunizieren und somit nicht sicherstellen kann, dass die Datenbanken synchronisiert sind.Data loss is possible because the target replica cannot communicate with the primary replica and, therefore, cannot guarantee that the databases are synchronized. Durch das Erzwingen des Failovers wird eine neue Wiederherstellungsverzweigung gestartet.Forcing failover starts a new recovery fork. Da sich die ursprünglichen primären Datenbanken und sekundären Datenbanken auf verschiedenen Wiederherstellungsverzweigungen befinden, enthält jede Datenbank nun Daten, die in der jeweils anderen Datenbank nicht vorhanden sind: Jede ursprüngliche primäre Datenbank enthält die Änderungen, die noch nicht aus der Sendewarteschlange an die frühere sekundäre Datenbank gesendet wurden (die nicht gesendeten Protokolle). Die früheren sekundären Datenbanken enthalten die Änderungen, die nach dem Erzwingen des Failovers vorgenommen wurden.Because the original primary databases and secondary databases are on different recovery forks, each of them now contains data that the other database does not contain: each original primary database contains whatever changes were not yet sent from its send queue to the former secondary database (the unsent log); the former secondary databases contain whatever changes occur after failover was forced.

Wird das Failover aufgrund eines Fehlers des primären Replikats erzwungen, hängt der potenzielle Datenverlust davon ab, ob Transaktionsprotokolle vorhanden sind, die vor dem Fehler nicht an das sekundäre Replikat gesendet wurden.If failover is forced because the primary replica has failed, potential data loss is depends on whether any transaction logs had not been sent to the secondary replica before the failure. Im asynchronen Commit-Modus besteht immer die Möglichkeit, dass sich nicht gesendete Protokolle ansammeln.Under the asynchronous-commit mode, accumulated unsent log is always a possibility. Im synchronen Commit-Modus ist dies nur bis zum Synchronisieren der sekundären Datenbanken möglich.Under synchronous-commit mode, this is possible only until the secondary databases becomes synchronized.

In der folgenden Tabelle werden die Möglichkeiten eines Datenverlusts für eine bestimmte Datenbank auf dem Replikat, wofür Sie ein Failover ausführen, zusammengefasst.The following table summarizes the possibility of data loss for a particular database on the replica to which you force failover.

Verfügbarkeitsmodus des sekundären ReplikatsAvailability mode of Secondary Replica Ist die Datenbank synchronisiert?Is database synchronized? Besteht die Möglichkeit eines Datenverlusts?Is data loss possible?
Synchroner CommitSynchronous-commit jaYes neinNo
Synchroner CommitSynchronous-commit neinNo jaYes
Asynchroner CommitAsynchronous-commit neinNo jaYes

Sekundäre Datenbanken verfolgen nur zwei Wiederherstellungsverzweigungen nach. Wenn Sie also mehrere erzwungene Failover ausführen, kann eine sekundäre Datenbank, für die die Datensynchronisierung mit dem vorherigen erzwungenen Failover gestartet wurde, u. U. nicht fortgesetzt werden.Secondary databases track only two recovery forks, so if you perform multiple forced failovers, any secondary database that did start data synchronization with the previous force failover might not be able to resume. In diesem Fall müssen alle sekundären Datenbanken, die nicht fortgesetzt werden können, aus der Verfügbarkeitsgruppe entfernt und der Verfügbarkeitsgruppe wieder hinzugefügt werden, nachdem sie bis zum richtigen Zeitpunkt wiederhergestellt wurden.If this occurs, any secondary databases that cannot be resumed will need to be removed from the availability group, restored to the correct point in time, and rejoined to the availability group. Da eine Wiederherstellung nicht über mehrere Wiederherstellungsverzweigungen ausgeführt werden kann, sollten Sie unbedingt eine Protokollsicherung erstellen, nachdem Sie mehr als ein erzwungenes Failover ausgeführt haben.A restore will not work across multiple recovery forks, therefore, be sure to perform a log backup after performing more than one forced failover.

Warum nach Erzwingen des Quorums ein erzwungenes Failover erforderlich istWhy Forced Failover is Required After Forcing Quorum

Nachdem Sie das Quorum (erzwungenes Quorum) im WSFC-Cluster erzwungen haben, müssen Sie für jede Verfügbarkeitsgruppe ein Failover erzwingen (mit möglichem Datenverlust).After quorum is forced on the WSFC cluster (forced quorum) you need to perform a forced failover (with possible data loss) on each availability group. Das Erzwingen eines Failovers ist erforderlich, da der wirkliche Status der WSFC-Clusterwerte verloren gegangen sein könnte.The forced failover is required because the real state of the WSFC cluster values might have been lost. Normale Failover müssen nach einem erzwungenen Quorum verhindert werden, da ein nicht synchronisiertes sekundäres Replikat andernfalls im neu konfigurierten WSFC-Cluster als synchronisiert angezeigt werden könnte.Preventing normal failovers after a forced quorum is required because of the possibility than an unsynchronized secondary replica would appear to be synchronized on the reconfigured WSFC cluster.

Beispiel: Ein WSFC-Cluster, das eine Verfügbarkeitsgruppe auf drei Knoten hostet: Knoten A hostet das primäre Replikat. Knoten B und Knoten C hosten jeweils ein sekundäres Replikat.For example, consider a WSFC cluster that hosts an availability group on three nodes: Node A hosts the primary replica and Node B and Node C each hosts a secondary replica. Knoten C wird vom WSFC-Cluster getrennt, während das lokale sekundäre Replikat SYNCHRONISIERT wird.Node C gets disconnected from the WSFC cluster while the local secondary replica is SYNCHRONIZED. Die Knoten A und B weisen weiterhin ein fehlerfreies Quorum auf. Die Verfügbarkeitsgruppe bleibt online.But Node A and Node B retain a healthy quorum and the availability group remains online. Auf Knoten A akzeptiert das primäre Replikat weiterhin Updates. Auf Knoten B wird das sekundäre Replikat weiterhin mit dem primären Replikat synchronisiert.On Node A, the primary replica continues to accept updates, and on Node B, the secondary replica continues to synchronize with the primary replica. Das sekundäre Replikat auf Knoten C wird nicht mehr synchronisiert und fällt zunehmend hinter das primäre Replikat zurück.The secondary replica on Node C becomes unsynchronized and falls increasingly behind the primary replica. Da Knoten C getrennt wurde, bleibt das Replikat jedoch fälschlicherweise im Status SYNCHRONIZED.However, because Node C is disconnected, the replica remains, incorrectly, in the SYNCHRONIZED state.

Wenn das Quorum verloren geht und dann auf Knoten A erzwungen wird, sollte der Synchronisierungsstatus der Verfügbarkeitsgruppe im WSFC-Cluster richtig sein. Das sekundäre Replikat auf Knoten C sollte den Status UNSYNCHRONIZED aufweisen.If quorum is lost and is then forced on Node A, the synchronization state of the availability group on the WSFC cluster should be correct—with the secondary replica on Node C shown as UNSYNCHRONIZED. Wenn jedoch ein Quorum auf Knoten C erzwungen wird, ist die Synchronisierung der Verfügbarkeitsgruppe falsch.However, if quorum is forced on Node C, the synchronization of the availability group will be incorrect. Der Synchronisierungsstatus im Cluster entspricht dem Status, als Knoten C getrennt wurde. Das sekundäre Replikat auf Knoten C weist fälschlicherweise den Status SYNCHRONIZED auf.The synchronization state on the cluster will have reverted back to when Node C was disconnected—with the secondary replica on Node C incorrectly shown as SYNCHRONIZED. Da geplante manuelle Failover die Sicherheit der Daten gewährleisten, darf eine Verfügbarkeitsgruppe nach dem Erzwingen eines Quorums nicht wieder online geschaltet werden.Since planned manual failovers guarantee the safety of the data, they are disallowed for bring an availability group back online after quorum is forced.

Möglichen Datenverlust nachverfolgenTracking Potential Data Loss

Wenn der WSFC-Cluster ein fehlerfreies Quorum aufweist, können Sie das aktuelle Datenverlustrisiko fürDatenbanken einschätzen.When the WSFC cluster has a healthy quorum, you can estimate the current potential for data loss on databases. Für ein gegebenes sekundäres Replikat hängt das aktuelle Datenverlustrisiko davon ab, wie groß die Verzögerung der lokalen sekundären Datenbanken gegenüber den entsprechenden primären Datenbanken ist.For a given secondary replica, the current potential for data loss depends on how far the local secondary databases are lagging behind the corresponding primary databases. Da die Verzögerung im Verlauf der Zeit variiert, wird empfohlen, den potenziellen Datenverlust für Ihre nicht synchronisierten sekundären Datenbanken regelmäßig nachzuverfolgen.Because the amount of lag varies over time, we recommend that you periodically track potential data loss for your unsynchronized secondary databases. Eine Nachverfolgung der Verzögerung umfasst den Vergleich der LSN des letzten Commits mit der Zeit des letzten Commits für jede primäre Datenbank und ihre sekundären Datenbanken wie folgt:Tracking lag involves comparing the Last Commit LSN and Last Commit Time for each primary database and its secondary databases, as follows:

  1. Stellen Sie eine Verbindung mit dem primären Replikat her.Connect to the primary replica.

  2. Führen Sie eine Abfrage der Spalten last_commit_lsn (LSN der letzten Transaktion, für die ein Commit ausgeführt wurde) und last_commit_time (Zeitpunkt des letzten Commits) der dynamischen Verwaltungssicht sys.dm_hadr_database_replica_states durch.Query the last_commit_lsn (LSN of the last committed transaction) and last_commit_time (time of the last commit) columns of the sys.dm_hadr_database_replica_states dynamic management view.

  3. Vergleichen Sie die Werte, die für jede primäre Datenbank und ihre sekundären Datenbanken zurückgegeben werden.Compare the values returned for each primary database and each of its secondary databases. Der Unterschied zwischen den LSNs des letzten Commits gibt die Verzögerung an.The difference between their Last Commit LSNs indicate the amount of lag.

  4. Sie können eine Warnung ausgeben, wenn die Verzögerung für eine Datenbank oder einen Satz Datenbanken die gewünschte maximale Verzögerung für einen bestimmten Zeitraum überschreitet.You can trigger an alert when the amount of lag on a database or set of databases exceeds your desired maximum lag for a given period of time. Beispielsweise kann die Abfrage durch einen Auftrag ausgeführt werden, der einmal pro Minute für jede primäre Datenbank ausgeführt wird.For example, the query can be run by a job that executes every minute on each primary database. Wenn der Unterschied zwischen dem Zeitpunkt des letzten Commits ( last_commit_time ) für eine primäre Datenbank und dem für eine ihrer sekundären Datenbanken das Recovery Point Objective (RPO) (z.B. 5 Minuten) seit der letzten Ausführung des Auftrags überschreitet, kann der Auftrag eine Warnung ausgeben.If the difference between the last_commit_time of a primary database and any of its secondary databases has exceeded the recovery point objective (RPO) (for example, 5 minutes) since the last time the job executed, the job can raise an alert.

Wichtig

Wenn der WSFC-Cluster kein Quorum aufweist oder das Quorum erzwungen wurde, sind last_commit_lsn und last_commit_time NULL.When the WSFC cluster lacks quorum or quorum has been forced, last_commit_lsn and last_commit_time are NULL. Weitere Informationen dazu, wie Sie nach der Erzwingung des Quorums Datenverluste vermeiden können, finden Sie unter „Möglichkeiten zum Vermeiden von Datenverlust nach dem Erzwingen eines Quorums“ in Ausführen eines erzwungenen manuellen Failovers einer Verfügbarkeitsgruppe (SQL Server)ausgetauscht werden.For information about how you might be able to avoid data loss after you forced quorum, see "Potential Ways to Avoid Data Loss After Quorum is Forced" in Perform a Forced Manual Failover of an Availability Group (SQL Server).

Umgang mit potenziellem DatenverlustManaging the Potential Data Loss

Nach einem erzwungenen Failover werden alle sekundären Datenbanken angehalten.After failover is forced, all secondary databases are suspended. Dies schließt die früheren primären Datenbanken ein, nachdem das frühere primäre Replikat wieder online geschaltet wurde und ermittelt, dass es jetzt ein sekundäres Replikat ist.This includes the former primary databases, after the former primary replica comes back online and discovers that it is now a secondary replica. Sie müssen jede angehaltene Datenbank einzeln auf jedem sekundären Replikat manuell fortsetzen.You must manually resume each suspended database individually on each secondary replica.

Sobald das frühere primäre Replikat verfügbar ist, können Sie versuchen, den potenziellen Datenverlust zu verwalten, falls die Datenbanken unbeschädigt sind.Once the former primary replica is available, assuming that its databases are undamaged, you can attempt to manage the potential data loss. Der jeweilige Ansatz für die Verwaltung des potenziellen Datenverlusts hängt davon ab, ob das ursprüngliche primäre Replikat eine Verbindung mit dem neuen primären Replikat hergestellt hat.The available approach for managing potential data loss depends on whether the original primary replica has connected to the new primary replica. Vorausgesetzt, dass das ursprüngliche primäre Replikat auf die neue primäre Instanz zugreifen kann, wird die Verbindung automatisch und transparent wiederhergestellt.Assuming that the original primary replica can access the new primary instance, reconnecting occurs automatically and transparently.

Das ursprüngliche primäre Replikat hat eine Verbindung wiederhergestelltThe Original Primary Replica Has Reconnected

Normalerweise stellt das ursprüngliche primäre Replikat nach einem Fehler beim Neustarten rasch die Verbindung zu seinem Partner wieder her.Typically, after a failure, when the original primary replica restarts it quickly reconnects to its partner. Beim Wiederherstellen der Verbindung wird das ursprüngliche primäre Replikat zum sekundären Replikat.On reconnecting, the original primary replica becomes the secondary replica. Seine Datenbanken werden die sekundären Datenbanken und erhalten den Status SUSPENDED.Its databases becomes the secondary databases and enter the SUSPENDED state. Es wird nur dann ein Rollback der neuen sekundären Datenbanken ausgeführt, wenn Sie sie fortsetzen.The new secondary databases will not be not rolled back unless you resume them.

Der Zugriff auf die angehaltenen Datenbanken ist jedoch nicht möglich; deshalb können Sie sie nicht überprüfen, um festzustellen, welche Daten beim Fortsetzen einer bestimmten Datenbank verloren gehen würden.However, the suspended databases are inaccessible, so you cannot inspect them to evaluate what data would be lost if you were to resume a given database. Die Entscheidung, ob eine sekundäre Datenbank fortgesetzt oder entfernt werden soll, hängt somit wie folgt davon ab, ob Sie bereit sind, Datenverluste in Kauf zu nehmen:Therefore, the decision on whether to resume or remove a secondary database depends on whether you are willing to accept any data loss, as follows:

  • Wenn der Verlust von Daten inakzeptabel ist, sollten Sie die Datenbanken aus der Verfügbarkeitsgruppe entfernen, um die Daten zu retten.If losing any data would be unacceptable, you should remove the databases from the availability group to salvage them.

    Der Datenbankadministrator kann jetzt die früheren primären Datenbanken wiederherstellen und versuchen, die Daten wiederherzustellen, die verloren gegangen wären.The database administrator can now recover the former primary databases and attempt to recover the data that would have been lost. Wenn eine frühere primäre Datenbank jedoch online geschaltet wird, weicht sie von der aktuellen primären Datenbank ab. Daher muss der Datenbankadministrator entweder die entfernte Datenbank oder die aktuelle primäre Datenbank für Clients sperren, um weitere Abweichungen der Datenbanken sowie Clientfailoverprobleme zu vermeiden.However, when a former primary database comes online, it is divergent from the current primary database, so the database administrator needs to make either the removed database or the current primary database inaccessible to clients to avoid further divergence of the databases and to prevent client-failover issues.

  • Wenn der Verlust von Daten für Ihre Geschäftsziele akzeptabel ist, können Sie die sekundären Datenbanken fortsetzen.If losing data would be acceptable to your business goals, you can resume the secondary databases.

    Beim Fortsetzen einer neuen sekundären Datenbank wird ein Rollback der Datenbank als erster Schritt zum Synchronisieren ausgeführt.Resuming a new secondary database causes it to be rolled back as the first step in synchronizing the database. Waren zum Zeitpunkt des Fehlers Protokolldatensätze in der Sendewarteschlange enthalten, gehen die entsprechenden Transaktionen verloren, selbst wenn ein Commit für sie ausgeführt wurde.If any log records were waiting in the send queue at the time of failure, the corresponding transactions are lost, even if they were committed.

Das ursprüngliche primäre Replikat hat keine Verbindung wiederhergestelltThe Original Primary Replica Has Not Reconnected

Wenn Sie zeitweise verhindern können, dass das ursprüngliche primäre Replikat wieder eine Verbindung über das Netzwerk mit dem primären Replikat herstellt, können Sie die ursprünglichen primären Datenbanken überprüfen und so feststellen, welche Daten im Falle einer Fortsetzung verloren gehen würden.If you can temporarily prevent the original primary replica from reconnecting over the network to the new primary replica, you can inspect the original primary databases to evaluate what data would be lost if they were resumed.

  • Der potenzielle Datenverlust ist akzeptabelIf the potential data loss is acceptable

    Lassen Sie zu, dass das ursprüngliche primäre Replikat erneut eine Verbindung mit dem neuen primären Replikat herstellt.Allow the original primary replica to reconnect to the new primary replica. Durch das erneute Verbinden werden die neuen sekundären Datenbanken angehalten.Reconnecting causes the new secondary databases to be suspended. Zum Starten der Datensynchronisierung in einer Datenbank setzen Sie deren Ausführung einfach fort.To start data synchronization on a database, simply resume it. Das neue sekundäre Replikat löscht die ursprüngliche Wiederherstellungsverzweigung für diese Datenbank, wobei alle Transaktionen verloren gehen, die nie an das frühere sekundäre Replikat gesendet wurden bzw. von ihm empfangen wurden.The new secondary replica drops the original recovery fork for that database, losing any transactions that were never sent to or received by the former secondary replica.

  • Ist der Datenverlust nicht akzeptabel, gehen Sie folgendermaßen vor:If the data loss is unacceptable

    Wenn die ursprüngliche primäre Datenbank wichtige Daten enthält, die verloren gehen würden, wenn Sie die angehaltene Datenbank fortsetzen, können Sie Daten auf der ursprünglichen primären Datenbank durch Entfernen der Datenbank aus der Verfügbarkeitsgruppe beibehalten.If the original primary database contains critical data that would be lost if you resumed the suspended database, you can preserve the data on the original primary database by removing it from the availability group. Dies bewirkt, dass die Datenbank den Status RESTORING erhält.This causes the database to enter the RESTORING state. Sie sollten in diesem Fall versuchen, das Protokollfragment der entfernten Datenbank zu sichern.At this point, we recommend that you attempt to back up the tail of the removed database's log. Sie können dann die aktuelle primäre (die frühere sekundäre Datenbank) durch Exportieren der in der ursprünglichen primären Datenbank zu erhaltenden Daten und Importieren der Daten in die aktuelle primäre Datenbank aktualisieren.Then, you can update the current primary (the former secondary database) by exporting the data you want to salvage from the original primary database and importing it into the current primary database. Es wird empfohlen, so schnell wie möglich eine vollständige Datenbanksicherung der aktualisierten primären Datenbank zu erstellen.We recommend taking a full database backup of the updated primary database as quickly as possible.

    Sie können dann auf der Serverinstanz, die das neue sekundäre Replikat hostet, die angehaltene sekundäre Datenbank löschen und eine neue sekundäre Datenbank durch das Wiederherstellen dieser Sicherung (und mindestens einer nachfolgenden Protokollsicherung) mit RESTORE WITH NORECOVERY erstellen.Then, on the server instance that hosts the new secondary replica, you can delete the suspended secondary database and create a new secondary database by restoring this backup (and least one subsequent log backup) using RESTORE WITH NORECOVERY. Es wird empfohlen, zusätzliche Protokollsicherungen der aktuellen primären Datenbanken bis zum Fortsetzen der entsprechenden sekundären Datenbanken hinauszuzögern.We recommend delaying additional log backups of the current primary databases until the corresponding secondary databases are resumed.

Warnung

Die Transaktionsprotokollkürzung in einer primären Datenbank wird verzögert, solange eine ihrer sekundären Datenbanken angehalten ist.Transaction log truncation is delayed on a primary database while any of its secondary databases is suspended. Der Synchronisierungszustand eines sekundären Replikats mit synchronem Commit kann auch keinen Übergang zu HEALTHY durchführen, solange alle lokalen Datenbanküberreste angehalten sind.Also the synchronization health of a synchronous-commit secondary replica cannot transition to HEALTHY as long as any local database remains suspended.

Verwandte AufgabenRelated Tasks

So konfigurieren Sie das FailoververhaltenTo configure failover behavior

Verwandte InhalteRelated Content

Weitere Informationen finden Sie unterSee 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)
Windows Server-Failoverclustering (WSFC) mit SQL Server Windows Server Failover Clustering (WSFC) with SQL Server
Datenbankübergreifende Transaktionen und verteilte Transaktionen für Always On-Verfügbarkeitsgruppen und Datenbankspiegelung (SQL Server) Cross-Database Transactions and Distributed Transactions for Always On Availability Groups and Database Mirroring (SQL Server)
Failover Policy for Failover Cluster Instances Failover Policy for Failover Cluster Instances
Flexible Failoverrichtlinie für automatisches Failover einer Verfügbarkeitsgruppe (SQL Server)Flexible Failover Policy for Automatic Failover of an Availability Group (SQL Server)