Je tente de configurer un cluster mysql.
J'ai la configuration suivante
Vous trouverez ci-dessous le fichier config.ini:
[NDBD par défaut] [.____] [. ____] # options affectant les processus NDBD sur tous les nœuds de données: Noofremplicas = 2 # Numéro de réplicas DataMemory = 80m # Combien de mémoire à allouer pour le stockage de données [.____] IndexMemory = 18m # Combien de mémoire allouer pour le stockage de l'index # pour DataMemory , nous avons utilisé les # Valeurs par défaut. Puisque la base de données "World" prend # Seulement environ 500 ko, cela devrait être plus que suffisant pour # Cet exemple de configuration de cluster. Datadir =/var /Lib/mysql-cluster [MySQLD par défaut] [.____] [NDB_MGMD par défaut] [.____] [.] LogDestination = fichier: nom = mon-cluster.log [.____] [. ____] [par défaut TCP] [.____] [.____] [.____] [ Options: Nom d'hôte = xxx26 # Hostname ou adresse IP du nœud MGM [.____] Datadir =/var/lib/mysql-cluster # répertoire # pour les fichiers journaux de nœud MGM # Nœuds de stockage [.____] [NDBD] [.____] [.____] nom d'hôte = xxx26 # adresse IP du noeud de stockage-1 [.____] Datadir = /var/lib/mysql-cluster [ndbd] HostName=xxx73 # adresse IP du noeud de stockage-2 Datadir = /var/lib/mysql-Cluster [ndbd] HostName=xxx26 # adresse IP du noeud de stockage-3 Datadir = /var/lib/mysql-cluster [ndbd] HostName=XXX73 # adresse IP du noeud de stockage-4 Datadir =/var/lib /mysql-ccluster # ID de nœud de configuration pour les serveurs API MySQL (clients du cluster) [.____] [mysqld] [.____] # SQL Node Options: nom d'hôte = xxx73 # hostname ou adresse IP # (des connexions mysqld supplémentaires peuvent être # spécifié pour ce nœud pour divers #. ndb_restore)
Vous trouverez ci-dessous le fichier my.cnf
Pour les deux systèmes:
[mysqld] [.____] Moteur de stockage NDB NDB N ° [.____] [.____] NDB-ConnectString = XXX26 # Emplacement du serveur de gestion [. [mysql_cluster] [.____] ndb-connectstring = xxx26 # Emplacement du serveur de gestion [.____]
Lorsque j'essaie de démarrer le cluster, cela me donne une erreur suivante:
Could not determine which NodeID to use for this node. Specify it with --ndb-nodeid=<nodeid> on command line
Si la configuration de la clustering est effectuée, il n'y a pas de réplication de données car elle me donne à nouveau une autre erreur: ERROR 1296 (HY000): Got error 4009 'Cluster Failure' from NDBCLUSTER
Quelqu'un peut-il m'aider à déterminer le problème?
Votre configuration de gestion me semble bien. Cela ressemble à NDB_MGMD n'a pas été mort ou s'il existe un problème avec le contenu du répertoire/var/lib/mysql-cluster sur le serveur de gestion.
Vous voudrez peut-être aussi vous assurer que NDB_MGMD ne démarre pas automatiquement, comme dans un script de démarrage dans /etc/init.d/.
Pour essayer de résoudre le problème, je commencerais avec ces étapes d'abord.
Puisque vous venez de commencer et que vous n'avez pas encore de données réelles.
killall ndb_mgmd
ou en redémarrant si Killall n'aide pas.rm -Rf /var/lib/mysql-cluster/*
ndb_mgmd -f /etc/config.ini --initial
Vérifiez que ndb_mgmd écoute avec NetStat
$> netstat -tlpn
Connexions Internet actives (Seuls serveurs) Proto Recv-Q Send-Q Adresse locale Adresse étrangère Etat PID/Nom du programme
[.____] TCP 0 0 0.0.0.0.0.0:1186 0.0.0.0:* Écoutez 3251/NDB_MGMD
Connectez-vous au noeud de gestion
$> ndb_mgm
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.9.26 (mysql-5.1.61 ndb-7.1.22)
Mise à jour
Voici un guide de démarrage rapide de Oracle avec tous les nœuds, gestion, mySQL et données exécutant sur un serveur.
http://downloads.mysql.com/tatudials/cluster/getmysqlclusterRunning-Linux.pdf
Quelques éléments à considérer: lorsque vous avez 2 nœuds de données par machine, le serveur de gestion ne peut pas déterminer lequel des deux nœuds de données que vous commencez. Vous devez donc spécifier cela via l'option --NDB-NodeID lors de la démarrage de NDBMTD/NDBD.
Deuxièmement, une configuration entièrement disponible nécessite une troisième machine. Sinon, vous n'avez que 50% de survivre à un crash de HW sur l'une des machines. À un crash de HW, tous les nœuds de la machine échouent et cela en fait 50% de chances que l'arbitre se bloque également.
L'arbitre est utilisé pour décider de quelle partie du cluster devrait survivre si la moitié des nœuds échouent.
Si les nœuds de données n'ont pas encore commencé et que vous essayez d'interroger des données via un serveur MySQL, l'erreur que vous obtenez est 4009.