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

MySQL InnoDB Cluster (Group Replication + MySQL Router)

MySQLNiveau: AvancéDurée: 90–120 min

Construit un InnoDB Cluster single-primary à partir de 3 (ou 5 à 9) serveurs MySQL installés dans le même datacenter : dba.configureInstance, createCluster et addInstance par clone via l'AdminAPI de MySQL Shell ; bootstrap de MySQL Router (6446 RW / 6447 RO), supervision avec cluster.status(), test de failover, et runbooks pour la perte de quorum, l'arrêt complet et le rolling restart. Vous obtenez un cluster qui bascule automatiquement lorsque le primary tombe, l'application se connectant via Router. Pour un site distant ou une simple montée en charge en lecture, utilisez la réplication classique ; pour l'exploitation courante d'un cluster existant, le guide d'exploitation InnoDB Cluster.

Topologie: 3 à 9 nœuds MySQL + 1 serveur Router

Avant de commencer

  • MySQL … est installé sur tous les nœuds dans la même version mineure (guide DBAtlas Installation de MySQL sur un serveur unique), GTID est activé et chaque nœud a un server_id différent. Le root du système peut se connecter avec mysql sans mot de passe.
  • Les nœuds 2..… ne contiennent aucune donnée à conserver : en rejoignant le cluster, ils reçoivent par clone une copie du nœud 1 (…) et leurs données existantes sont supprimées.
  • Toutes les tables du nœud 1 sont en InnoDB et possèdent une clé primaire (exigence de Group Replication). La requête de contrôle ne doit renvoyer aucune ligne.
  • Les nœuds communiquent entre eux sur les ports 3306 (MySQL et communication Group Replication), 33060 (X Protocol) et 33061 ; le serveur Router accède aux nœuds sur 3306/33060. La latence est faible (même datacenter ; < 1–2 ms).
  • Les horloges sont synchronisées (chrony).
  • Le nombre de nœuds est impair (…) : … nœuds tolèrent la perte d'au plus … nœud(s). Un nombre pair n'apporte aucune tolérance supplémentaire.
  • Un mot de passe robuste est prêt pour le compte d'administration du cluster (…) (au moins 8 caractères, majuscules/minuscules, chiffres, caractères spéciaux). MySQL Shell et Router demandent le mot de passe dans les étapes sans l'afficher ; Shell reçoit l'instruction de ne pas l'enregistrer.
  • Le serveur Router peut joindre repo.mysql.com (le dépôt MySQL est ajouté dans ce guide).

Phases du guide

  • Préparation (tous les nœuds MySQL) — Ouvrir les ports du cluster dans le pare-feu · Déclarer le port Group Replication auprès de SELinux · Ajouter les paramètres du cluster (…) · Redémarrer MySQL · Installer MySQL Shell
  • Configuration des instances (dba.configureInstance) — Créer le compte d'administration du cluster (…) · Contrôler les instances à distance
  • Créer le cluster — Créer le cluster · Ajouter le nœud au cluster (…) · Vérifier l'état du cluster
  • MySQL Router — Ajouter le dépôt MySQL (serveur Router) · Installer Router et Shell · Faire le bootstrap de Router · Démarrer le service Router · Ouvrir les ports de Router dans le pare-feu · Tester la connexion via Router
  • Vérification et supervision — État détaillé · Superviser les membres en SQL
  • Test de failover — Failover : arrêter le primary · Failover : arrêter le primary · Failover : voir le nouveau primary · Failover : voir le nouveau primary · Failover : Router redirige-t-il vers le nouveau primary · Failover : Router redirige-t-il vers le nouveau primary …
  • Perte de quorum et arrêt complet — Quorum : diagnostiquer l'état · Quorum : diagnostiquer l'état · Quorum : forcer le quorum avec la partition survivante · Quorum : forcer le quorum avec la partition survivante · Quorum : arrêter l'ancien groupe sur le nœud qui revient (…) · Quorum : arrêter l'ancien groupe sur le nœud qui revient (…) …
  • Rolling restart (maintenance) — Rolling : redémarrer un secondary (…) · Rolling : redémarrer un secondary (…) · Rolling : transférer le rôle de primary · Rolling : transférer le rôle de primary · Rolling : redémarrer l'ancien primary · Rolling : redémarrer l'ancien primary …
Ouvrir le plan pas à pas adapté à votre environnement →