DBAtlas · Atlas d'exploitation des bases de données

Basculement forcé (FORCE_FAILOVER_ALLOW_DATA_LOSS) et reprise après basculement

SQL ServerAlways On et HA

Commande

-- 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;

Ce que fait la commande

Fait d'un réplica DR le primaire en acceptant une perte de données, quand le primaire est entièrement perdu ; reprend ensuite le mouvement de données suspendu sur les autres réplicas et, au retour de l'ancien primaire, prend un snapshot pour examiner les transactions qui n'ont jamais atteint le nouveau primaire.

Quand l'utiliser

Quand le data center primaire est hors service, qu'il ne reste qu'un réplica asynchrone, ou qu'un réplica synchrone n'est pas SYNCHRONIZED et qu'un basculement reste nécessaire.

Attention

PERTE DE DONNÉES : les transactions postérieures au dernier LSN durci sont perdues. Obtenez d'abord la validation du RPO par le métier. Après un basculement forcé, toutes les bases secondaires sont SUSPENDED ; le journal n'est pas tronqué et continue de grossir jusqu'à HADR RESUME. Si le quorum WSFC est perdu, démarrez d'abord le cluster avec un quorum forcé (PowerShell : Start-ClusterNode -FixQuorum), sinon la commande échoue. HADR RESUME sur l'ancien primaire supprime définitivement les transactions perdues ; ne reprenez pas sans avoir pris le snapshot.

Ouvrir dans DBAtlas →

Voir aussi