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

Vérifier la santé d'InnoDB Cluster / Group Replication

MySQLInnoDB Cluster

Commande

# Shell: topology, primary, fault tolerance, lag
mysqlsh icadmin@db1:3306 -- cluster status --extended=1
mysqlsh icadmin@db1:3306 -- cluster list-routers

-- SQL: group members and queues from any member
SELECT m.MEMBER_HOST, m.MEMBER_PORT, m.MEMBER_STATE, m.MEMBER_ROLE, m.MEMBER_VERSION,
       s.COUNT_TRANSACTIONS_IN_QUEUE AS certify_queue,
       s.COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE AS apply_queue,
       s.COUNT_CONFLICTS_DETECTED AS conflicts
FROM performance_schema.replication_group_members m
JOIN performance_schema.replication_group_member_stats s ON s.MEMBER_ID = m.MEMBER_ID
ORDER BY m.MEMBER_ROLE, m.MEMBER_HOST;

Ce que fait la commande

Affiche l'état global du cluster (OK / OK_NO_TOLERANCE / NO_QUORUM), la primaire, l'état de chaque membre et les files de certification / d'apply ; les files révèlent quel membre est en retard et le risque de flow control.

Quand l'utiliser

Avant et après chaque intervention ; sur alerte, ralentissement des écritures, ou lorsqu'un membre affiche RECOVERING / ERROR / UNREACHABLE.

Attention

statusText doit indiquer 'can tolerate up to ONE failure' (3 membres). Avec NO_QUORUM, les écritures s'arrêtent ; n'utilisez forceQuorumUsingPartitionOf que si vous êtes certain que l'autre partition est arrêtée, sinon vous obtenez un split-brain. Un membre dont l'apply_queue ne cesse de croître déclenche le flow control et ralentit les écritures sur la primaire. Un RECOVERING prolongé signifie qu'une récupération clone / incrémentale est en cours ; pour ERROR, consultez l'error log et essayez cluster.rejoinInstance(). Les caractères spéciaux des mots de passe (#, @) doivent être encodés en URL dans l'URI (# → %23).

Ouvrir dans DBAtlas →

Voir aussi