DBAtlas · Atlas für Datenbankbetrieb

Erzwungenes Failover (FORCE_FAILOVER_ALLOW_DATA_LOSS) und Wiederherstellung danach

SQL ServerAlways On & HA

Befehl

-- 1) On each candidate secondary: pick the most current one (highest end_of_log_lsn)
SELECT ag.name AS ag_name, DB_NAME(drs.database_id) AS db,
       drs.synchronization_state_desc, drs.end_of_log_lsn, drs.last_commit_time
FROM   sys.dm_hadr_database_replica_states drs
  JOIN sys.availability_groups ag ON ag.group_id = drs.group_id
WHERE  drs.is_local = 1;

-- 2) On the chosen replica (while the primary is unreachable):
ALTER AVAILABILITY GROUP [AG_Musteri] FORCE_FAILOVER_ALLOW_DATA_LOSS;

-- 3) On the other secondaries, resume the suspended data movement:
ALTER DATABASE [Musteri] SET HADR RESUME;

-- 4) When the old primary returns (now a SUSPENDED secondary):
--    take a snapshot first to inspect the lost transactions, then resume
CREATE DATABASE [Musteri_lost_snap]
  ON (NAME = N'Musteri', FILENAME = N'D:\Data\Musteri_lost_snap.ss')
  AS SNAPSHOT OF [Musteri];
ALTER DATABASE [Musteri] SET HADR RESUME;

Was es tut

Macht bei vollständigem Verlust des Primary eine DR-Replica unter Inkaufnahme von Datenverlust zum Primary; setzt danach die angehaltene Datenbewegung auf den anderen Replicas fort und erstellt, wenn der alte Primary zurückkehrt, einen Snapshot, um Transaktionen zu untersuchen, die den neuen Primary nie erreicht haben.

Wann einsetzen

Wenn das primäre Rechenzentrum ausgefallen ist, nur eine asynchrone Replica übrig ist oder eine synchrone Replica nicht SYNCHRONIZED ist und trotzdem ein Failover nötig ist.

Vorsicht

DATENVERLUST: Transaktionen nach der letzten gehärteten LSN gehen verloren. Hol dir zuerst die RPO-Freigabe vom Fachbereich. Nach einem erzwungenen Failover sind alle Secondary-Datenbanken SUSPENDED; das Log wird nicht gekürzt und wächst bis HADR RESUME weiter. Ist das WSFC-Quorum verloren, starte den Cluster zuerst mit erzwungenem Quorum (PowerShell: Start-ClusterNode -FixQuorum), sonst schlägt der Befehl fehl. HADR RESUME auf dem alten Primary verwirft die verlorenen Transaktionen endgültig; nicht fortsetzen, ohne den Snapshot erstellt zu haben.

In DBAtlas öffnen →

Verwandte Einträge