Wiki [Tuto/HowTo] [Ubuntu/Debian] GaleraCluster / MariaDB - restaurer cluster BDD cassé

0
25
oct.
2017

Introduction

La grappe de votre cluster refuse de démarrer après une coupure réseau ou parce qu'un de ses nœuds a redémarré ?
La procédure suivante devrait vous sauver les miches !




Relancer le cluster

Note : ici il n'y a pas de corruption de données, on va simplement forcer le cluster à repartir d'une machine. Il est conseillé que cette machine soit la plus à jours (la dernière a avoir planté).

Donc sur le nœud ayant la base de données la plus à jours lancez cette commande pour spécifier son état "sain"
sed -ie '/safe_to/c\safe_to_bootstrap: 1' /var/lib/mysql/grastate.dat
  • Explication : cette commande va éditer /var/lib/mysql/grastate.dat et remplacer safe_to_bootstrap: 0 par safe_to_bootstrap: 1
Sur ce même node éditez le fichier /etc/mysql/conf.d/galera.cnf
nano /etc/mysql/conf.d/galera.cnf
Commentez ensuite la ligne concernant la liste de vos nodes "wsrep_cluster_address" puis ajoutez la ligne suivante
wsrep_cluster_address="gcomm://"
Ensuite, toujours sur le même nœud, réinitialisez le cluster
mysqld_safe --wsrep-new-cluster
Relancez mariadb sur tout les Nodes
service mysql restart
Attendez une ou deux minutes (voir plus si vos BDD sont énorme et pas du tout à jours).
Si tout s'est bien passé, replacez en état normal la configuration de la machine
sed -ie '/safe_to/c\safe_to_bootstrap: 0' /var/lib/mysql/grastate.dat
  • Explication : cette commande va éditer /var/lib/mysql/grastate.dat et remplacer safe_to_bootstrap: 1 par safe_to_bootstrap: 0
Puis éditez le fichier /etc/mysql/conf.d/galera.cnf
nano /etc/mysql/conf.d/galera.cnf
Commentez ensuite "wsrep_cluster_address="gcomm://"" puis ajoutez ou décommentez la ligne indiquant tout vos noeuds
wsrep_cluster_address="gcomm://server1,server2,raptorJésus"
Enfin, relancez mariadb sur ce nœud uniquement
service mysql restart
Enjoy !



Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.