DBAtlas · Atlas für Datenbankbetrieb

Zustand von InnoDB Cluster / Group Replication prüfen

MySQLInnoDB Cluster

Befehl

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

Was es tut

Zeigt den Gesamtzustand des Clusters (OK / OK_NO_TOLERANCE / NO_QUORUM), die Primary, den Zustand jedes Mitglieds und die Certification-/Applier-Queues; die Queues zeigen, welches Mitglied zurückliegt, und das Flow-Control-Risiko.

Wann einsetzen

Vor und nach jedem Eingriff; bei Alarmen, verlangsamten Schreibvorgängen oder wenn ein Mitglied RECOVERING / ERROR / UNREACHABLE zeigt.

Vorsicht

statusText sollte 'can tolerate up to ONE failure' (3 Mitglieder) lauten. Bei NO_QUORUM stoppen Schreibvorgänge; forceQuorumUsingPartitionOf nur verwenden, wenn sicher ist, dass die andere Partition ausgefallen ist, sonst entsteht Split-Brain. Ein Mitglied, dessen apply_queue ständig wächst, löst Flow Control aus und verlangsamt Schreibvorgänge auf der Primary. Ein langes RECOVERING bedeutet, dass Clone-/inkrementelle Recovery läuft; bei ERROR das Error Log prüfen und cluster.rejoinInstance() versuchen. Sonderzeichen in Passwörtern (#, @) müssen in der URI URL-kodiert werden (# → %23).

In DBAtlas öffnen →

Verwandte Einträge