DBAtlas · Veritabanı operasyon atlası

Zorunlu failover (FORCE_FAILOVER_ALLOW_DATA_LOSS) ve sonrası toparlanma

SQL ServerAlways On & HA

Komut

-- 1) Her aday secondary'de: en guncel replikayi sec (en yuksek 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) Secilen replikada (primary erisilemezken):
ALTER AVAILABILITY GROUP [AG_Musteri] FORCE_FAILOVER_ALLOW_DATA_LOSS;

-- 3) Diger secondary'lerde askiya alinan veri hareketini baslat:
ALTER DATABASE [Musteri] SET HADR RESUME;

-- 4) Eski primary geri geldiginde (artik SUSPENDED secondary):
--    kaybolan islemleri incelemek icin once snapshot al, sonra resume et
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;

Ne yapar?

Primary tamamen kaybedildiğinde DR replikasını veri kaybını kabul ederek primary yapar; ardından diğer replikalarda SUSPENDED kalan data movement'ı başlatır ve eski primary döndüğünde ona ait, yeni primary'ye hiç ulaşmamış işlemleri incelemek için snapshot alır.

Ne zaman kullanılır?

Primary veri merkezi çöktüğünde, yalnız asynchronous replika kaldığında ya da senkron replika SYNCHRONIZED değilken failover zorunlu olduğunda.

Dikkat

VERİ KAYBI: Son hardened LSN'den sonraki transaction'lar kaybolur. Önce iş birimiyle RPO onayı al. Forced failover sonrası tüm secondary veritabanları SUSPENDED olur; HADR RESUME edilene kadar log truncate edilmez ve log büyür. WSFC quorum kaybedildiyse önce cluster'ı force quorum ile başlat (PowerShell: Start-ClusterNode -FixQuorum), aksi halde komut çalışmaz. Eski primary'de HADR RESUME, kaybolan transaction'ları kalıcı olarak geri alır; snapshot almadan resume etme.

DBAtlas'ta aç →

İlgili