web-dev-qa-db-fra.com

Configuration du cluster MySQL sur deux systèmes

Je tente de configurer un cluster mysql.

J'ai la configuration suivante

  • un nœud de gestion
  • deux nœuds de données
  • une autre machine sur laquelle deux autres nœuds résident

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?

4
Yogesh Ballani

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.

  1. Tuez tous les processus gauche sur NDB_MGMD avec: killall ndb_mgmd ou en redémarrant si Killall n'aide pas.
  2. Supprimer complètement tout dans/var/lib/mysql-cluster: rm -Rf /var/lib/mysql-cluster/*
  3. Démarrez le processus de cluster à nouveau: ndb_mgmd -f /etc/config.ini --initial
  4. 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

2
Craig Efrein

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.

0
Mikael Ronström