Freigeben über


Failoververknüpfung – Azure SQL Managed Instance

Gilt für:Azure SQL Managed Instance

In diesem Artikel erfahren Sie, wie Sie eine Datenbank linked zwischen SQL Server und Azure SQL Managed Instance mithilfe von SQL Server Management Studio (SSMS) oder PowerShell zum Zweck der Notfallwiederherstellung oder Migration fehlschlagen.

Voraussetzungen

Um ein Failover Ihrer Datenbanken über den Link auf Ihr sekundäres Replikat auszuführen, ist Folgendes erforderlich:

Arbeitslast stoppen

Wenn Sie zum Failover Ihrer Datenbank bereit sind und um Ihre Datenbank auf das sekundäre Replikat auszulagern, stoppen Sie zunächst alle Anwendungs-Workloads auf dem primären Replikat während Ihrer Wartungszeiten. Dadurch kann die Datenbank-Replikation auf dem sekundären System nachgeholt werden, sodass Sie ohne Datenverlust auf das sekundäre System umschalten können. Sie müssen sicherstellen, dass die Anwendungen vor dem Failover keine Transaktionen an das Primärsystem übertragen.

Replikationsverzögerung überprüfen

Es ist wichtig, dass das sekundäre Replikat auf das primäre Replikat aufholt, bevor ein geplanter Failover durchgeführt wird. Geplantes Failover kann ablaufen und fehlschlagen, wenn das sekundäre Replikat dem primären Replikat weit hinterherhinkt.

Verwenden Sie die folgende T-SQL-Abfrage sowohl für SQL Server als auch für SQL Managed Instance, um den Replikationsabstand zwischen den Replikaten zu überwachen:

-- Execute on SQL Server and SQL Managed Instance 
USE master
DECLARE @link_name varchar(max) = '<DAGname>'
SELECT
   ag.name [Link name], 
   ars1.role_desc [Link role],
   ars2.connected_state_desc [Link connected state],
   ars2.synchronization_health_desc [Link sync health],
   drs.secondary_lag_seconds [Link replication latency (seconds)]
FROM
   sys.availability_groups ag 
   JOIN sys.dm_hadr_availability_replica_states ars1
   ON ag.group_id = ars1.group_id
   JOIN sys.dm_hadr_availability_replica_states ars2
   ON ag.group_id = ars2.group_id
   JOIN sys.dm_hadr_database_replica_states drs
   ON ars2.replica_id = drs.replica_id
WHERE 
   ag.is_distributed = 1 AND ag.name = @link_name AND ars1.is_local = 1 AND ars2.is_local = 0
GO

Wenn die Replikationsverzögerung hoch ist, warten Sie, bis das sekundäre Replikat das primäre Replikat aufnimmt. Möglicherweise müssen Sie zusätzliche Schritte zur Problembehandlung ausführen, wenn die Verzögerung weiterhin besteht, z. B. die Verbesserung des Verbindungsnetzwerkdurchsatzes zwischen den beiden Instanzen oder das Erhöhen der Ressourcenkapazität für das sekundäre Replikat.

Durchführung eines Failovers einer Datenbank

Sie können eine verknüpfte Datenbank mithilfe von Transact-SQL (T-SQL), SQL Server Management Studio oder PowerShell fehlschlagen.

Sie können den Link mit Transact-SQL ab SQL Server 2022 CU13 (KB5036432) fehlschlagen.

Verwenden Sie zum Ausführen eines geplanten Failovers für einen Link den folgenden T-SQL-Befehl im primären Replikat:

ALTER AVAILABILITY GROUP [<DAGname>] FAILOVER

Verwenden Sie zum Ausführen eines erzwungenen Failovers den folgenden T-SQL-Befehl im sekundären Replikat:

ALTER AVAILABILITY GROUP [<DAGname>] FORCE_FAILOVER_ALLOW_DATA_LOSS

Wichtig

Nach dem Ausführen eines geplanten Failovers wird der Replikationsmodus auf asynchron festgelegt.

Prozess des Failovers bei mehreren Datenbanken

Wenn Sie beabsichtigen, mehrere Datenbanken von Instanzen auf demselben Server zu failovern, wechseln Sie für optimale Leistung und Planbarkeit jeweils 8 Datenbanken pro Instanz. Wenn Sie z. B. über 10 Instanzen mit jeweils 32 verknüpften Datenbanken verfügen, schlagen Sie jeweils über 8 Datenbanken aus jeder Instanz fehl, und wiederholen Sie den Vorgang, bis alle Datenbanken fehlgeschlagen sind.

Datenbank nach dem Failover anzeigen

Wenn Sie sich für SQL Server 2022 entschieden haben, den Link beizubehalten, können Sie überprüfen, ob die Gruppe für verteilte Verfügbarkeit unter Verfügbarkeitsgruppen in Objekt-Explorer in SQL Server Management Studio vorhanden ist.

Wenn Sie den Link während des Failovers gelöscht haben, können Sie Objekt-Explorer verwenden, um zu bestätigen, dass die Verteilte Verfügbarkeitsgruppe nicht mehr vorhanden ist. Wenn Sie sich entschieden haben, die Verfügbarkeitsgruppe beizubehalten, wird die Datenbank weiterhin synchronisiert.

Nach einem Failover aufräumen

Sofern Verknüpfung nach erfolgreichem Failover entfernen nicht ausgewählt ist, wird der Link bei einem Failover mit SQL Server 2022 nicht unterbrochen. Sie können die Verbindung nach dem Failover aufrechterhalten, wodurch die Verfügbarkeitsgruppe und die verteilte Verfügbarkeitsgruppe aktiv bleiben. Weitere Schritte sind nicht erforderlich.

Beim Weglassen der Verbindung wird nur die verteilte Verfügbarkeitsgruppe weggelassen, und die Verfügbarkeitsgruppe bleibt aktiv. Sie können die Verfügbarkeitsgruppe beibehalten oder weglassen.

Wenn Sie sich dazu entscheiden, Ihre Verfügbarkeitsgruppe wegzulassen, ersetzen Sie den folgenden Wert, und führen Sie dann den T-SQL-Beispielcode aus:

  • <AGName> mit dem Namen der Verfügbarkeitsgruppe auf SQL Server (wird zum Erstellen des Links verwendet).
-- Run on SQL Server
USE MASTER
GO
DROP AVAILABILITY GROUP <AGName> 
GO

Inkonsistenter Zustand nach erzwungenem Failover

Nach einem erzwungenen Failover tritt möglicherweise ein Split-Brain-Szenario auf, bei dem beide Replikas in der primären Rolle sind und die Verbindung in einem inkonsistenten Zustand bleibt. Dies kann passieren, wenn Sie während einer Katastrophe ein Failover auf das sekundäre Replikat durchführen und das primäre Replikat wieder online geht.

Informationen zum Beheben dieses Problems finden Sie unter Beheben des Split-Brain-Szenarios.

So verwenden Sie den Link:

Weitere Informationen zum Link finden Sie unter:

Informationen zu anderen Replikations- und Migrationsszenarios finden Sie unter: