WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:cluster:sql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:cluster:sql [2017/08/05 11:27]
insolentbacon
wiki:cluster:sql [2020/06/27 18:16] (Version actuelle)
Ligne 3: Ligne 3:
 ==== Introduction ==== ==== Introduction ====
  
-Actuellement nous avons le SQL (avec MySQL en backend) sur +On a un cluster MySQL (appelé NDB cluster) qui nous permet d'avoir:
-spirit. Il est stocké directement sur le disque en local. +
-Des sauvegardes sont faites régulièrement sur les NAS, ils sont +
-dump dans un fichier "gité" (mis sur gitlab). +
- +
-L'idée serait de faire un cluster MySQL (appelé NDB cluster) ce +
-qui nous permetterait d'avoir:+
     1/ De la redondance     1/ De la redondance
     2/ De la "haute disponibilité"     2/ De la "haute disponibilité"
Ligne 28: Ligne 22:
 Ça ne remplacera bien évidemment pas les backups réguliers mais Ça ne remplacera bien évidemment pas les backups réguliers mais
 ça permettera de ne pas perdre toute une journée d'écritures en ça permettera de ne pas perdre toute une journée d'écritures en
-cas de défaillance du disque de spirit (pas de raid).+cas de défaillance du disque d'un noeud de prod. (à l'époque où j'ai écrit l'article, les disques des noeuds de prod hébergeant la BDD n'était pas en RAID1...)
  
 === 2/ _La haute disponibilité_ === === 2/ _La haute disponibilité_ ===
Ligne 126: Ligne 120:
 </WRAP> </WRAP>
  
 +===En cas de problème===
 +
 +==Le cluster n'arrive plus à redémarrer==
 +Si le cluster n'a pas été éteint proprement, pour le redémarrer, il faut :
 +
 +  * Tout d'abord, redémarrer tous ndb_mgmd. En effet, celui-ci gère les entrées et sorties des noeuds ndb dans le cluster. 
 +    * **Si vous ne pouvez pas redémarrer tous les ndb_mgmd du cluster**, il va falloir lancer ceux que vous pouvez lancer en spécifiant l'option --nowait-nodes=102,103,etc... avec les noeuds qui ne pourront pas être lancé (sinon les ndbdata & ndbsql refuseront de se lancer)
 +> /usr/sbin/ndb_mgmd -f /usr/mysql-cluster/config.ini --config-dir=/usr/mysql-cluster --nowait-nodes=666
 +
 +  * Redémarrer __tous__ les ndbdata car le cluster ne redémarrera pas tant qu'il n'est pas sûr qu'il a bien la dernière version de la base de données.
 +
 +       *Si les ndbdata ne redémarrent pas: allez sur ndbmgmt et consultez les logs dans /usr/mysql_cluster/. Il est très probable que l'un des noeuds ne veuille pas se lancer avec une erreur du genre INTERNAL_ERROR. Si on est certain que ce noeud n'est pas le seul à contenir la version la plus mise à jour de la base de données, alors on peut dire alors dire au cluster de redémarrer sans l'attendre. Pour cela, démarrer les __autres__ ndbdata avec la commande //ndbd --nowait-nodes=X// avec X le numéro du noeud que l'on souhaite ne pas attendre.
  
 +  * Enfin, redémarrer au moins un ndbsql (note: les services sql sembleront down si les ndbdata & ndbmgmd ne sont pas up, c'est normal, il ne faut pas essayer de le redémarrer en boucle).
  
wiki/cluster/sql.1501925268.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)