Comment faire pour installer MariaDB Galera Cluster sur Ubuntu 16.04

MariaDB Galera est un cluster multi-maître pour MariaDB. depuis MariaDB 10.1, les packages MariaDB Server et MariaDB Galera Server ont été combinés et paquets Galera et leurs dépendances sont installées automatiquement lors de l'installation MariaDB. Actuellement, MariaDB Galera Cluster ne supporte que le moteur de stockage InnoDB / XtraDB. en MariaDB 10.0 et 5.5, vous devrez télécharger séparément. MariaDB Galera ajoute de la redondance pour la base de données d'un site. Dans MariaDB Galera Cluster, les serveurs de bases de données multiples interconnectés les uns avec les autres et de garder synchronisés.

MariaDB Galera offre de nombreuses fonctionnalités, Certains d'entre eux sont énumérés ci-dessous:

  1. La réplication synchrone.
  2. noeud automatique joindre.
  3. topologie multi-maître actif-actif.
  4. réplication vrai parallèle, au niveau de la rangée.
  5. Lire et écrire l'évolutivité, Les petits latences client.
  6. Failed noeuds, baisse automatique du cluster.

Dans ce tutoriel, nous allons vous expliquer comment configurer MariaDB Galera Cluster 10.1 avec 3 noeuds fonctionnant sur Ubuntu 16.04 serveur. Nous allons également tester la réplication de base de données entre tous les nœuds.

Exigences en matière

  • Trois nœuds exécutant Ubuntu 16.04 serveur.
  • Node1 avec une adresse IP statique 192.168.0.102, Node2 avec une adresse IP statique 192.168.0.103 et Node3 avec une adresse IP statique 192.168.0.104 configurer sur votre serveur.
  • utilisateur non root avec la configuration des privilèges sudo sur tous les nœuds.

Mise en route

Première, vous devez mettre à jour tous les noeuds avec la dernière version. Vous pouvez mettre à jour toutes avec la commande suivante:

sudo apt-get update -y
sudo apt-get upgrade -y

Prochaine, redémarrez tous les nœuds d'appliquer ces changements. Puis, se connecter avec l'utilisateur et passez à sudo l'étape suivante.

Installer MariaDB Galera

MariaDB Server et MariaDB packages Galera Server sont combinés dans la version MariaDB 10.1. Par défaut, MariaDB 10.1 n'est pas disponible dans les dépôts Ubuntu par défaut, de sorte que vous devrez ajouter le dépôt MariaDB sur tous les nœuds.

Première, ajoutez la clé de référentiel MariaDB avec la commande suivante:

Sudo touches --recv-apt-key adv --keyserver HKP: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

Prochaine, ajouter le référentiel et mettre à jour le cache APT avec la commande suivante:

sudo add-apt-repository 'deb [arch = amd64, i386, ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial principale'
sudo apt-get update -y

Une fois le dépôt est mis à jour, installer MariaDB avec la commande suivante:

sudo apt-get install rsync MariaDB-serveur -y

La commande ci-dessus installera MariaDB avec Galera et plusieurs dépendances. Les parties Galera restent en sommeil jusqu'à configuration, comme un moteur de plug-in ou l'entreposage. Une fois que le MariaDB est installé sur tous les nœuds, vous pouvez procéder à sécuriser MariaDB.

Par défaut, l'installation MariaDB est pas sécurisé, vous aurez donc besoin d'obtenir l'installation de MariaDB. Vous pouvez le faire en exécutant le script mysql_secure_installation:

sudo mysql_secure_installation

Dans ce processus, il vous sera demandé de définir le mot de passe root, supprimer des utilisateurs anonymes, désavouer à distance connexion root et de supprimer la base de données de test. Répondez à toutes les questions comme ci-dessous:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Une fois que le MariaDB est fixé sur tous les nœuds, vous pouvez passer à l'étape suivante.

Configuration MariaDB cluster sur Node1

Première, aller à la Node1 et créer un fichier de configuration pour Galera. Par défaut, MariaDB lit la configuration du répertoire /etc/mysql/conf.d/. Pour le faire, Exécutez la commande suivante :

nano /etc/mysql/conf.d/galera.cnf sudo

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

Enregistrez le fichier lorsque vous avez terminé.

Remarque : 192.168.0.102 est l'adresse IP du Noeud1

Ajouter Node2 sur Cluster Galera

Prochaine, aller à la Node2 et créer un fichier de configuration pour Galera:

nano /etc/mysql/conf.d/galera.cnf sudo

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

Enregistrez le fichier lorsque vous avez terminé.

Remarque : 192.168.0.103 est l'adresse IP du Node2.

Ajouter Node3 sur Cluster Galera

Prochaine, aller à la Node3 et créer un fichier de configuration pour Galera:

nano /etc/mysql/conf.d/galera.cnf sudo

Ajoutez les lignes suivantes :

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

Enregistrez le fichier lorsque vous avez terminé.

Remarque : 192.168.0.104 est l'adresse IP du Node3.

Configurer le pare-feu

Galera Cluster utilise quatre ports 3306 pour la connexion client MySQL, 4444 pour le transfert instantané d'État, 4567 pour le trafic de réplication Galera Cluster et 4568 pour l'état incrémental Transfert. Vous aurez donc besoin de permettre à tous ces ports en utilisant le pare-feu UFW. Vous pouvez le faire en exécutant la commande suivante sur tous les nœuds:

Première, le pare-feu UFW avec la commande suivante:

sudo ufw enable

Prochaine, permettre à tous les ports avec la commande suivante:

sudo ufw permettent 3306 / tcp
sudo ufw permettent 4444 / tcp
sudo ufw permettent 4567 / tcp
sudo ufw permettent 4568 / tcp
sudo ufw permettent 4567 / udp

Vous pouvez alors vérifier l'état du pare-feu avec la commande suivante:

sudo ufw status

Une fois que le pare-feu est configuré UFW sur tous les nœuds, vous pouvez passer à l'étape suivante.

Démarrez MariaDB Galera Cluster

Après avoir configuré avec succès tous les nœuds, aller à la Node1 et commencer Cluster Galera.

Avant Galera peut commencer, vous devez vous assurer que le service MariaDB est arrêté sur tous les nœuds.

Exécutez la commande suivante sur tous les nœuds:

mysql d'arrêt de sudo

Maintenant, démarrer le cluster Galera sur Node1 avec la commande suivante:

galera_new_cluster sudo

Maintenant, vérifier si le cluster est en cours d'exécution ou non avec la commande suivante:

mysql -u root -p -e "show status like 'wsrep_cluster_size'"

Si tout va bien, vous devriez voir la sortie suivante:

+--------------------+-------+
| variable_name | valeur |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Sur le Node2, démarrer le service MariaDB:

mysql de début de sudo

Vous pouvez vérifier l'état du service MariaDB si elle fonctionne ou non avec la commande suivante:

état de sudo mysql

Si tout va bien, vous devriez voir la sortie suivante:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh -c systemctl _WSREP_START_POSITION unset environnement (code = Exited, status=0/SUCCESS)
  Process: 713 ExecStartPost = / etc / mysql / debian-start (code = Exited, status=0/SUCCESS)
  Process: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [ $? -eq 0 ]   && systemctl set
  Process: 535 ExecStartPre = / bin / sh -c systemctl _WSREP_START_POSITION unset environnement (code = Exited, status=0/SUCCESS)
  Process: 514 ExecStartPre = / usr / bin / install -m 755 -o -g mysql racine -d / var / run / mysqld (code = Exited, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limite : 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 debian systemd [1]: Démarrage serveur de base de données MariaDB ...
Sep 17 10: 11: 15 debian mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10: 11: 20 debian systemd [1]: Démarrage serveur de base de données MariaDB.

Maintenant, votre deuxième noeud devrait automatiquement lié au ai cluster. Vous pouvez vérifier que la commande suivante:

mysql -u root -p -e "show status like 'wsrep_cluster_size'"

Si tout fonctionne bien, la taille de cluster doit être réglé sur deux:

+--------------------+-------+
| variable_name | valeur |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Sur le Node3, démarrer le service MariaDB:

mysql de début de sudo
mysql -u root -p -e "show status like 'wsrep_cluster_size'"

Si tout fonctionne bien, la taille de cluster doit être réglé sur trois:

+--------------------+-------+
| variable_name | valeur |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Vous cluster est maintenant travailler et de communiquer les uns des autres.

Test de réplication de base de données

Maintenant, tous les noeuds sont en ligne, il est temps de tester la réplication de base de données à travers le cluster Galera. Commençons par la création d'une base de données sur Node1 et vérifier si elle est répliqué sur tous les nœuds.

Première, connexion pour console MariaDB avec la commande suivante:

mysql -u root -p

Entrez votre mot de passe root et créer une base de données avec le nom test_db:

MariaDB [(aucun)]> créer la base de données test_db;
MariaDB [(aucun)]> Voir l’établissement de bases de données ;

+--------------------+
| Base de données |
+--------------------+
| test_db |
+--------------------+

Maintenant, allez à la Node2 et Node3, puis vérifiez la réplication fonctionne ou non:

mysql -u root -p
MariaDB [(aucun)]> Voir l’établissement de bases de données ;

+--------------------+
| Base de données |
+--------------------+
| test_db |
+--------------------+

Toutes nos félicitations! vous avez installé et configuré MariaDB Galera Cluster sur Ubuntu 16.04 serveur.

Conclusion

J'espère que vous avez maintenant assez pour installer et configurer MariaDB Galera Cluster sur Ubuntu 16.04. Vous pouvez désormais facilement mis à l'échelle jusqu'à plusieurs, ou même des dizaines, des noeuds distincts. Si vous avez un doute ou requête plus, reportez-vous alors le lien Galera Cluster Doc

Source

Laisser un commentaire

S'il vous plaît entrer votre commentaire!
S'il vous plaît entrer votre nom ici