Différences entre les versions de « Mysql cluster »
(Page créée avec « Cette page à pour but de décrire la l'installation et la configuration de MySQL Cluster. Une aide plus approfondie peut être trouvée [http://dev.mysql.com/doc/index-cl... ») |
|||
| Ligne 71 : | Ligne 71 : | ||
== Nœuds MySQL ou de stockage == | == Nœuds MySQL ou de stockage == | ||
Créer le fichier | Créer le fichier DataDirrenseigné dans la section [ndbd default] de la configuration du nœud de gestion. | ||
Créer un fichier | Créer un fichier etc/my.cnfavec le contenu suivant : | ||
<pre> | <pre> | ||
[mysqld] | [mysqld] | ||
| Ligne 84 : | Ligne 84 : | ||
== Nœuds de gestion == | == Nœuds de gestion == | ||
Créer un fichier | Créer un fichier /var/lib/mysql-cluster/config.ini avec le contenu suivant : | ||
<pre> | <pre> | ||
# Fichier "config.ini" pour deux noeuds de stockage et un serveur MySQL | # Fichier "config.ini" pour deux noeuds de stockage et un serveur MySQL | ||
| Ligne 147 : | Ligne 147 : | ||
= Vérifications = | = Vérifications = | ||
== Nœuds MySQL == | == Nœuds MySQL == | ||
Vérifiez que le moteur de stockage NDBCLUSTER est géré via la commande MySQL | Vérifiez que le moteur de stockage NDBCLUSTER est géré via la commande MySQL SHOW ENGINES\G | ||
<pre> | <pre> | ||
mysql> SHOW ENGINES\G | mysql> SHOW ENGINES\G | ||
| Ligne 162 : | Ligne 162 : | ||
= Commandes utiles = | = Commandes utiles = | ||
== Nœuds de gestion == | == Nœuds de gestion == | ||
La commande | La commande ndb_mgm propose plusieurs sous-commandes utiles | ||
<pre> | <pre> | ||
* | * SHOW : Avoir un état du Cluster. | ||
ndb_mgm> SHOW | ndb_mgm> SHOW | ||
Cluster Configuration | Cluster Configuration | ||
| Ligne 181 : | Ligne 181 : | ||
</pre> | </pre> | ||
* | * <node_id> START et <node_ID> STOP : Démarrer ou stopper un nœud, l'ID est celle indiqué dans la commande SHOW, par exemple, ici, le nœud 1 est celui de gestion, les 2 et 3 ceux de stockage et le 5 le nœud MySQL. L'ID peut être remplacé par ALL pour affecter tout les nœuds. | ||
* | * <node_id> RESTART : Stop, puis redémarre le nœud identifié par l'ID <node_id>. | ||
* | * <node_id> STATUS : Affiche l'état du nœud choisi. | ||
ndb_mgm> 1 STATUS | ndb_mgm> 1 STATUS | ||
Node 1: connected (Version 7.1.18) | Node 1: connected (Version 7.1.18) | ||
* | * <node_id> REPORT <type> : Il est possible d'obtenir un rapport sur l'utilisation mémoire et sur l'état des sauvegarde d'un nœud de stockage via cette commande, en remplaçant <type> repectivement par MemoryUsage et BackupStatus | ||
ndb_mgm> 2 REPORT BackupStatus | ndb_mgm> 2 REPORT BackupStatus | ||
Node 2: Backup not started | Node 2: Backup not started | ||
| Ligne 196 : | Ligne 196 : | ||
Node 2: Data usage is 0%(22 32K pages of total 2560) | Node 2: Data usage is 0%(22 32K pages of total 2560) | ||
Node 2: Index usage is 0%(16 8K pages of total 2336) | Node 2: Index usage is 0%(16 8K pages of total 2336) | ||
* | * ENTER SINGLE USER MODE <node_id> et EXIT SINGLE USER MODE <node_id> : Font respectivement entrer et sortir un nœud MySQL en mode « Single user » pour que seul lui puisse accéder aux bases, un nœud de donné ne peut joindre un cluster si un serveur MySQL fonctionne en mode « Single user ». | ||
* | * CREATE NODEGROUP <nodeid>[, <nodeid>, …] : Créer un groupe de nœuds composé par les nœuds de stockage désignés. Cette commande est utilisé après l'ajout de nœuds de donnée à un cluster déjà existant. les différent groupes de nœuds doivent avoir le même nombre de nœuds. | ||
* | * DROP NODEGROUP <nodegroup_id> : Supprime le groupe de nœuds désigné par <nodegroup_id> et en fait sortir les nœuds le composant. | ||
= Sauvegardes à chaud MySQL Cluster = | = Sauvegardes à chaud MySQL Cluster = | ||
Il semble toujours possible d'utiliser | Il semble toujours possible d'utiliser mysqldump depuis le nœud MySQL. | ||
== Introduction == | == Introduction == | ||
Les sauvegardes à chauds se présentent sous la forme d'instantanées (snapshot), ceux-ci sont partagés en trois parties : | Les sauvegardes à chauds se présentent sous la forme d'instantanées (snapshot), ceux-ci sont partagés en trois parties : | ||
* Metadata : Nom et définition des tables des bases de données. Fichier | * Metadata : Nom et définition des tables des bases de données. Fichier BACKUP-<backupid>.<nodeid>.ctl. | ||
* Table records : Données des tables des bases de données à l'instant de prise de l'instantané. Fichier | * Table records : Données des tables des bases de données à l'instant de prise de l'instantané. Fichier BACKUP-<backupid>-0.<nodeid>.data. | ||
* Transaction log : Enregistrement séquentiel indiquant comment et quand les données on été stocké dans les bases de données. Fichier | * Transaction log : Enregistrement séquentiel indiquant comment et quand les données on été stocké dans les bases de données. Fichier BACKUP-<backupid>.<nodeid>.log. | ||
Avec | Avec <nodeid> l'identifiant du nœud et <backupid> l'identifiant de l'instantané. | ||
Le | Le <backupid> est un nombre entier codé sur 32 bits identifiant l'instantané, si celui-ci n'est pas précisé lors de la création de l'instantané, le premier chiffre consécutif libre sera utilisé. | ||
== Gestion des sauvegardes == | == Gestion des sauvegardes == | ||
La commande de sauvegarde est | La commande de sauvegarde est START BACKUP <backupid>, celle-ci s'utilise depuis le nœud de gestion, l'identifiant de sauvegarde <backupid> est facultatif. | ||
* | * START BACKUP NOWAIT : Démarrer la sauvegarde et rendre la main immédiatement. | ||
* | * START BACKUP WAIT STARTED : Démarrer la sauvegarde et rendre la main une fois la sauvegarde démarré. | ||
* | * START BACKUP COMPLETED : Démarrer la sauvegarde et rendre la main à la fin de la sauvegarde, choix par défaut. | ||
Il est possible d'utiliser les options | Il est possible d'utiliser les options SNAPSHOTSTART et SNAPSHOTEND pour sauvegarder l'état du cluster en début ou en fin d'instantané, SNAPSHOTEND est le choix par défaut. | ||
Un instantané peut être annulé avec la commande | Un instantané peut être annulé avec la commande ABORT BACKUP <backupid>. | ||
== Options de sauvegarde == | == Options de sauvegarde == | ||
Ces options peuvent être ajouté dans le fichier | Ces options peuvent être ajouté dans le fichier /var/lib/mysql-cluster/config.ini du nœud de gestion. | ||
* !BackupDataBufferSize : Taille du cache de sauvegarde de données en RAM à utiliser avant écriture sur disque. | * !BackupDataBufferSize : Taille du cache de sauvegarde de données en RAM à utiliser avant écriture sur disque. | ||
* !BackupLogBufferSize : Taille du cache de sauvegarde de journaux en RAM à utiliser avant écriture sur disque. | * !BackupLogBufferSize : Taille du cache de sauvegarde de journaux en RAM à utiliser avant écriture sur disque. | ||
| Ligne 229 : | Ligne 229 : | ||
== Redémarrage intégral du cluster == | == Redémarrage intégral du cluster == | ||
Il est possible de stopper ou de redémarrer totalement un cluster MySQL via les commandes suivantes. | Il est possible de stopper ou de redémarrer totalement un cluster MySQL via les commandes suivantes. | ||
* Commencez par donner l'ordre d'arrêt au cluster depuis le nœud de gestion, ceci terminera les processus | * Commencez par donner l'ordre d'arrêt au cluster depuis le nœud de gestion, ceci terminera les processus ndbd et ndb_mgmd des nœuds de données et de gestion : | ||
# ndb_mgm -e shutdown | |||
* Ensuite, arrêtez les nœuds MySQL avec : | * Ensuite, arrêtez les nœuds MySQL avec : | ||
# mysqladmin shutdown | |||
* Pour redémarrer, commencez par les nœuds de gestion : | * Pour redémarrer, commencez par les nœuds de gestion : | ||
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini | |||
* Puis les nœuds de données | * Puis les nœuds de données | ||
# ndbd | |||
* Enfin, les nœuds MySQL | * Enfin, les nœuds MySQL | ||
# mysqld_safe & | |||
== Redémarrage d'un nœud individuel == | == Redémarrage d'un nœud individuel == | ||
Le redémarrage individuel, aussi nommée « Rolling Restart » est utilisé quand il s'avère nécessaire de d'intervenir sur un nœud du cluster, il permet de couper temporairement ledit nœud du cluster le temps de l'intervention, sans pour autant totalement couper le cluster. | Le redémarrage individuel, aussi nommée « Rolling Restart » est utilisé quand il s'avère nécessaire de d'intervenir sur un nœud du cluster, il permet de couper temporairement ledit nœud du cluster le temps de l'intervention, sans pour autant totalement couper le cluster. | ||
=== Réinitialisation === | === Réinitialisation === | ||
Si il est nécessaire de réinitialiser un cluster, il est souvant préférable de recharger les données et métadonnées, cela peut être fait de trois façon différentes : | Si il est nécessaire de réinitialiser un cluster, il est souvant préférable de recharger les données et métadonnées, cela peut être fait de trois façon différentes : | ||
* Redémarrez chaque nœud de données (processus | * Redémarrez chaque nœud de données (processus ndbd) avec l'option --initial pour forcer le nœud de données à nettoyer son système de fichier et à recharger les données et métadonnées depuis les autres nœuds de données. | ||
* Utilisez la commande | * Utilisez la commande ndbd pour créer un snapshot avant de redémarrer le nœud. Ensuite, restaurez les données avec ndb_restore. | ||
* Utilisez | * Utilisez mysqldump pour créer une sauvegarde avant redémarrage, une fois fait, restaurez-le avec la commande LOAD DATA INFILE. | ||
=== Récupération de ressources ou mise à jour === | === Récupération de ressources ou mise à jour === | ||
* Stoppez les nœuds de gestion (processus | * Stoppez les nœuds de gestion (processus ndb_mgmd), reconfigurez-les au besoin et redémarrez-les. | ||
* Puis, stoppez, reconfigurez et redémarrez les nœuds de données. | * Puis, stoppez, reconfigurez et redémarrez les nœuds de données. | ||
* Enfin, stoppez, reconfigurez et redémarrez les nœuds MySQL. | * Enfin, stoppez, reconfigurez et redémarrez les nœuds MySQL. | ||
=== Redémarrage avec plusieurs serveurs de gestion === | === Redémarrage avec plusieurs serveurs de gestion === | ||
* Stoppez tout les processus | * Stoppez tout les processus ndb_mgmd. | ||
* Mettez à jour les fichiers | * Mettez à jour les fichiers config.ini. | ||
* Démarrez un premier processus | * Démarrez un premier processus ndb_mgmd avec les options --reload ou --initial (ou les deux si désiré). | ||
* Démarrez les autre processus | * Démarrez les autre processus ndb_mgmd sans les options --reload et --initial. | ||
* Complétez le redémarrage des nœuds de données et MySQL comme à l'accoutumé. | * Complétez le redémarrage des nœuds de données et MySQL comme à l'accoutumé. | ||
[[Catégorie:Software]] | [[Catégorie:Software]] | ||
Version du 26 avril 2012 à 10:17
Cette page à pour but de décrire la l'installation et la configuration de MySQL Cluster. Une aide plus approfondie peut être trouvée [http://dev.mysql.com/doc/index-cluster.html sur le site de MySQL].
Introduction
Description (rapide) de MySQL Cluster
MySQL Cluster permet d'utiliser les techniques de grappes pour un service MySQL. MySQL Cluster est conçu afin d'éviter les points de ruptures unique, chaque composant de la grappe pouvant se trouver sur des machines différentes. Une grappe MySQL Cluster est composé de trois processus : * Nœud(s) MySQL (Processus MYSQLD) : Les nœuds MySQL permettent d'accéder aux nœuds de stockage et d'en manipuler les données. * Nœud(s) de stockage (Processus NDBD) : Les nœuds de stockages contiennent les données de la base de données. * Nœud(s) de gestion (Processus NDBD_MGMD) : Les nœuds de gestion sont utiliser pour gérer les nœuds MySQL et de stockage. Chaque nœuds peut (ou non) se trouver sur des machines différentes.
Plate-forme de tests
Le système a été testé avec trois machines virtuelles : * cluster-admsql (10.253.6.23) : Nœud MySQL et nœud de gestion. * cluster-ndbA (10.253.6.25) : Premier nœud de stockage. * cluster-ndbB (10.253.6.26) : Second nœud de stockage.
Installation
Récupérer la version voulu sur le site de MySQL, les versions de MySQL intégrées à MySQL Cluster sont différentes suivant les versions de MySQL Cluster : * MySQL Cluster 6.3, 7.0 et 7.1 : MySQL 5.1 * MySQL Cluster 7.2 : MySQL 5.5
Nœuds MySQL ou de stockage
L'installation pour ces types de nœuds est identique et est similaire à l'installation d'un serveur MySQL standard.
# cd /opt/applis # tar -xzf /root/install/mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23.tar.gz # ln -s mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23 mysql-cluster # ln -s /opt/applis/mysql-cluster /usr/local/mysql # groupadd mysql # useradd -g mysql mysql # cd /opt/applis/mysql-cluster # scripts/mysql_install_db --user=mysql # chown -R root . # chown -R mysql data # chgrp -R mysql . # cp support-files/mysql.server /etc/init.d/mysql # chmod 755 /etc/init.d/mysql # chkconfig --add mysql # chkconfig --level 3 mysql on # echo "/opt/applis/mysql-cluster/lib" > /etc/ld.so.conf.d/MYSQLCLUSER.conf # echo "PATH=\$PATH:/opt/applis/mysql-cluster" >> /etc/profile
Nœuds de gestion
Les nœuds de gestion ne nécessitent pas de services MySQL et seul une parti des exécutables est utilisés, leur installation est donc moins complexe.
# mkdir -p /opt/applis/mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23/bin # cd /opt/applis # tar -zxvf /root/install/mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23.tar.gz /opt/applis/mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23/bin '*/bin/ndb_mgm*' # ln -s mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23 mysql-cluster # ln -s /opt/applis/mysql-cluster /usr/local/mysql # cd /opt/applis/mysql-cluster-gpl-7.1.18-linux-x86_64-glibc23/bin # chmod +x ndb_mgm* # echo "/opt/applis/mysql-cluster/lib" > /etc/ld.so.conf.d/MYSQLCLUSER.conf # echo "PATH=\$PATH:/opt/applis/mysql-cluster" >> /etc/profile
Configuration
Il est possible de trouver les paramètres de configuration recommandés sur le site de MySQL. De la même manière, une aide plus exhaustive est disponible.
Nœuds MySQL ou de stockage
Créer le fichier DataDirrenseigné dans la section [ndbd default] de la configuration du nœud de gestion.
Créer un fichier etc/my.cnfavec le contenu suivant :
[mysqld] ndbcluster ndb-connectstring = cluster-admsql # IP/Hostname du noeud de gestion. [mysql_cluster] ndb-connectstring = cluster-admsql # IP/Hostname du noeud de gestion.
Nœuds de gestion
Créer un fichier /var/lib/mysql-cluster/config.ini avec le contenu suivant :
# Fichier "config.ini" pour deux noeuds de stockage et un serveur MySQL
# Ce fichier est placé dans le répertoire de démarrage du serveur de gestion
# {ndb_mgmd).
[tcp default] # Paramètres TCP par défaut.
SendBufferMemory = 2M # Caches de réception et d'envoi TCP a
ReceiveBufferMemory = 2M # augmenter en cas d'E/S disque insuffisante.
[ndbd_mgmd default] # Paramètres par défaut du serveur de gestion.
DataDir = /var/lib/mysql-cluster
[ndbd default] # Paramètres par défaut des noeuds de stockage.
NoOfReplicas = 2 # Nombre de noeuds de stoackage.
DataDir = /var/lib/mysql-cluster
LockPagesInMainMemory = 1 # Les noeuds de gestion utilisent la RAM
# évite une dégradation de performance.
DataMemory = 256M # RAM utilisable par les données et index, à
IndexMemory = 32M # adapter en fonction de la machine.
ODirect = 0 # Demande à NDBCLUSTER d'utiliser des écritures
# O_DIRECT pour réduire l'utilisation CPU,
# demande MySQL cluster 6.2 et Linux 2.6 min.
NoOfFragmentLogFiles = 300
DataDir = /var/lib/mysql-cluster
RealTimeScheduler = 0 # Demande a NDBCLUSTER a travailler en mode
# temps-réel, demande MySQL cluster 6.3 et
# un noyau compatible.
CompressedLCP=1 # Compression des fichiers de checkpoints locaux.
CompressedBackup=1 # Compression des fichiers de backup.
[ndb_mgmd] # Section des serveurs de gestion, une par serveur
Hostname = cluster-admsql # IP/Hostname du serveur de gestion.
[ndbd] # Section des noeuds de stockage, une par noeud.
HostName = cluster-ndbA # Premier noeud de stockage.
LockExecuteThreadToCPU = 0 # ID du CPU des threads d'éxécutions et
LockMaintThreadsToCPU = 0 # principaux sur les systèmes SMP.
[ndbd]
HostName = cluster-ndbB # Second noeud de stockage.
LockExecuteThreadToCPU = 0 # ID du CPU des threads d'éxécutions et
LockMaintThreadsToCPU = 0 # principaux sur les systèmes SMP.
[mysqld] # Section des serveurs MySQL, une par serveur.
HostName = cluster-admsql # IP/Hostname du serveur MySQL.
Démarrage
Nœuds de gestion
Les nœuds de gestion n'ayant pas de scripts de démarrage, il est nécessaire de les démarrer via la commande :
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Nœuds de stockage
Démarrer le processus NDBD avec la commande : ndbd
Nœuds MySQL
Démarrez le serveur MySQL avec le script /etc/init.d/mysql start
Vérifications
Nœuds MySQL
Vérifiez que le moteur de stockage NDBCLUSTER est géré via la commande MySQL SHOW ENGINES\G
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: ndbcluster
Support: YES
Comment: Clustered, fault-tolerant tables
Transactions: YES
XA: NO
Savepoints: NO
[…]
Commandes utiles
Nœuds de gestion
La commande ndb_mgm propose plusieurs sous-commandes utiles
* SHOW : Avoir un état du Cluster. ndb_mgm> SHOW Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @10.253.6.25 (mysql-5.1.56 ndb-7.1.18, Nodegroup: 0, Master) id=3 @10.253.6.26 (mysql-5.1.56 ndb-7.1.18, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @10.253.6.23 (mysql-5.1.56 ndb-7.1.18) [mysqld(API)] 2 node(s) id=4 (not connected, accepting connect from any host) id=5 @10.253.6.23 (mysql-5.1.56 ndb-7.1.18)
* <node_id> START et <node_ID> STOP : Démarrer ou stopper un nœud, l'ID est celle indiqué dans la commande SHOW, par exemple, ici, le nœud 1 est celui de gestion, les 2 et 3 ceux de stockage et le 5 le nœud MySQL. L'ID peut être remplacé par ALL pour affecter tout les nœuds. * <node_id> RESTART : Stop, puis redémarre le nœud identifié par l'ID <node_id>. * <node_id> STATUS : Affiche l'état du nœud choisi.
ndb_mgm> 1 STATUS Node 1: connected (Version 7.1.18)
* <node_id> REPORT <type> : Il est possible d'obtenir un rapport sur l'utilisation mémoire et sur l'état des sauvegarde d'un nœud de stockage via cette commande, en remplaçant <type> repectivement par MemoryUsage et BackupStatus
ndb_mgm> 2 REPORT BackupStatus Node 2: Backup not started
ndb_mgm> 2 REPORT MemoryUsage Node 2: Data usage is 0%(22 32K pages of total 2560) Node 2: Index usage is 0%(16 8K pages of total 2336)
* ENTER SINGLE USER MODE <node_id> et EXIT SINGLE USER MODE <node_id> : Font respectivement entrer et sortir un nœud MySQL en mode « Single user » pour que seul lui puisse accéder aux bases, un nœud de donné ne peut joindre un cluster si un serveur MySQL fonctionne en mode « Single user ». * CREATE NODEGROUP <nodeid>[, <nodeid>, …] : Créer un groupe de nœuds composé par les nœuds de stockage désignés. Cette commande est utilisé après l'ajout de nœuds de donnée à un cluster déjà existant. les différent groupes de nœuds doivent avoir le même nombre de nœuds. * DROP NODEGROUP <nodegroup_id> : Supprime le groupe de nœuds désigné par <nodegroup_id> et en fait sortir les nœuds le composant.
Sauvegardes à chaud MySQL Cluster
Il semble toujours possible d'utiliser mysqldump depuis le nœud MySQL.
Introduction
Les sauvegardes à chauds se présentent sous la forme d'instantanées (snapshot), ceux-ci sont partagés en trois parties :
* Metadata : Nom et définition des tables des bases de données. Fichier BACKUP-<backupid>.<nodeid>.ctl. * Table records : Données des tables des bases de données à l'instant de prise de l'instantané. Fichier BACKUP-<backupid>-0.<nodeid>.data. * Transaction log : Enregistrement séquentiel indiquant comment et quand les données on été stocké dans les bases de données. Fichier BACKUP-<backupid>.<nodeid>.log.
Avec <nodeid> l'identifiant du nœud et <backupid> l'identifiant de l'instantané.
Le <backupid> est un nombre entier codé sur 32 bits identifiant l'instantané, si celui-ci n'est pas précisé lors de la création de l'instantané, le premier chiffre consécutif libre sera utilisé.
Gestion des sauvegardes
La commande de sauvegarde est START BACKUP <backupid>, celle-ci s'utilise depuis le nœud de gestion, l'identifiant de sauvegarde <backupid> est facultatif.
* START BACKUP NOWAIT : Démarrer la sauvegarde et rendre la main immédiatement. * START BACKUP WAIT STARTED : Démarrer la sauvegarde et rendre la main une fois la sauvegarde démarré. * START BACKUP COMPLETED : Démarrer la sauvegarde et rendre la main à la fin de la sauvegarde, choix par défaut.
Il est possible d'utiliser les options SNAPSHOTSTART et SNAPSHOTEND pour sauvegarder l'état du cluster en début ou en fin d'instantané, SNAPSHOTEND est le choix par défaut.
Un instantané peut être annulé avec la commande ABORT BACKUP <backupid>.
Options de sauvegarde
Ces options peuvent être ajouté dans le fichier /var/lib/mysql-cluster/config.ini du nœud de gestion.
* !BackupDataBufferSize : Taille du cache de sauvegarde de données en RAM à utiliser avant écriture sur disque. * !BackupLogBufferSize : Taille du cache de sauvegarde de journaux en RAM à utiliser avant écriture sur disque. * !BackupMemory : RAM allouée à la sauvegarde sur un nœud de données, ce doit être la somme du cache RAM alloué au sauvegarde de données et de journaux. * !BackupWriteSize : Taille par défaut des blocs sur disque, cela concerne les sauvegarde de données ou de journaux. * !BackupMaxWriteSize : Taille maximum des blocs sur disque, cela concerne les sauvegarde de données ou de journaux.
Démarrage et arrêt d'un cluster MySQL
Redémarrage intégral du cluster
Il est possible de stopper ou de redémarrer totalement un cluster MySQL via les commandes suivantes.
* Commencez par donner l'ordre d'arrêt au cluster depuis le nœud de gestion, ceci terminera les processus ndbd et ndb_mgmd des nœuds de données et de gestion : # ndb_mgm -e shutdown * Ensuite, arrêtez les nœuds MySQL avec : # mysqladmin shutdown * Pour redémarrer, commencez par les nœuds de gestion : # ndb_mgmd -f /var/lib/mysql-cluster/config.ini * Puis les nœuds de données # ndbd * Enfin, les nœuds MySQL # mysqld_safe &
Redémarrage d'un nœud individuel
Le redémarrage individuel, aussi nommée « Rolling Restart » est utilisé quand il s'avère nécessaire de d'intervenir sur un nœud du cluster, il permet de couper temporairement ledit nœud du cluster le temps de l'intervention, sans pour autant totalement couper le cluster.
Réinitialisation
Si il est nécessaire de réinitialiser un cluster, il est souvant préférable de recharger les données et métadonnées, cela peut être fait de trois façon différentes :
* Redémarrez chaque nœud de données (processus ndbd) avec l'option --initial pour forcer le nœud de données à nettoyer son système de fichier et à recharger les données et métadonnées depuis les autres nœuds de données. * Utilisez la commande ndbd pour créer un snapshot avant de redémarrer le nœud. Ensuite, restaurez les données avec ndb_restore. * Utilisez mysqldump pour créer une sauvegarde avant redémarrage, une fois fait, restaurez-le avec la commande LOAD DATA INFILE.
Récupération de ressources ou mise à jour
* Stoppez les nœuds de gestion (processus ndb_mgmd), reconfigurez-les au besoin et redémarrez-les. * Puis, stoppez, reconfigurez et redémarrez les nœuds de données. * Enfin, stoppez, reconfigurez et redémarrez les nœuds MySQL.
Redémarrage avec plusieurs serveurs de gestion
* Stoppez tout les processus ndb_mgmd. * Mettez à jour les fichiers config.ini. * Démarrez un premier processus ndb_mgmd avec les options --reload ou --initial (ou les deux si désiré). * Démarrez les autre processus ndb_mgmd sans les options --reload et --initial. * Complétez le redémarrage des nœuds de données et MySQL comme à l'accoutumé.