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

Basculement d'un Availability Group

SQL ServerConfiguration

Commande

-- Run on the TARGET (secondary) REPLICA - planned, no data loss (synchronous):
ALTER AVAILABILITY GROUP [AG_Customer] FAILOVER;

-- Forced (asynchronous replica / primary unreachable, DATA LOSS risk):
-- ALTER AVAILABILITY GROUP [AG_Customer] FORCE_FAILOVER_ALLOW_DATA_LOSS;

-- Check status:
SELECT ag.name, ar.replica_server_name,
       rs.role_desc, rs.synchronization_health_desc, ar.availability_mode_desc
FROM   sys.availability_groups ag
  JOIN sys.availability_replicas ar ON ar.group_id = ag.group_id
  JOIN sys.dm_hadr_availability_replica_states rs ON rs.replica_id = ar.replica_id;

Ce que fait la commande

Déplace le rôle primaire de l'Availability Group vers un autre réplica ; un basculement planifié vers un réplica synchrone se fait sans perte de données.

Quand l'utiliser

Transfert de rôle pour maintenance/correctifs, basculement d'urgence quand le nœud primaire tombe.

Attention

La commande FAILOVER normale s'exécute sur le réplica SECONDAIRE qui prendra le relais. FORCE_FAILOVER_ALLOW_DATA_LOSS ne s'utilise que lorsque le primaire est injoignable ou sur un réplica asynchrone et peut PROVOQUER UNE PERTE DE DONNÉES ; soyez très prudent si la synchronisation n'est pas saine.

Ouvrir dans DBAtlas →

Voir aussi