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

Switchover planifié de la primaire dans InnoDB Cluster

MySQLInnoDB Cluster

Commande

# Shell: planned switchover
mysqlsh icadmin@db1:3306 -- cluster set-primary-instance db2:3306

-- SQL alternative: target member's server_uuid, 30 s timeout for open transactions
SELECT MEMBER_HOST, MEMBER_ID, MEMBER_ROLE FROM performance_schema.replication_group_members;
SELECT group_replication_set_as_primary('3f06e651-c356-11f1-8aac-927a9034ef99', 30);

Ce que fait la commande

Déplace de façon contrôlée le rôle de primaire vers un autre membre en mode single-primary ; l'ancienne primaire passe en super_read_only, la nouvelle applique son arriéré et s'ouvre aux écritures. MySQL Router apprend automatiquement la nouvelle primaire.

Quand l'utiliser

Avant une maintenance, un patch OS ou une mise à niveau de la primaire, et pour des déplacements matériels.

Attention

Les transactions ouvertes sur l'ancienne primaire sont tuées à l'expiration du timeout ; sans timeout, la bascule les attend et dure plus longtemps. Si l'application ne se connecte pas via Router, vous devez la rediriger vous-même. Avec BEFORE_ON_PRIMARY_FAILOVER, les écritures attendent que la nouvelle primaire ait résorbé son arriéré ; vérifiez d'abord dans cluster status que l'apply_queue est vide. Dans InnoDB Cluster, préférez la commande Shell ; elle reste cohérente avec les métadonnées.

Ouvrir dans DBAtlas →

Voir aussi