GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer MariaDB Galera Cluster sur Ubuntu 16.04

MariaDB Galera est un cluster multimaître pour MariaDB. Depuis MariaDB 10.1, les packages MariaDB Server et MariaDB Galera Server ont été combinés et les packages Galera et leurs dépendances sont installés automatiquement lors de l'installation de MariaDB. Actuellement, MariaDB Galera Cluster ne prend en charge que le moteur de stockage InnoDB/XtraDB. Dans MariaDB 10.0 et 5.5, vous devrez le 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, plusieurs serveurs de base de données sont interconnectés les uns avec les autres et restent synchronisés.

MariaDB Galera fournit de nombreuses fonctionnalités, dont certaines sont répertoriées ci-dessous :

  1. Réplication synchrone.
  2. Joindre un nœud automatiquement.
  3. Topologie multimaître actif-actif
  4. Véritable réplication parallèle, au niveau de la ligne.
  5. Évolutivité en lecture et en écriture, latences client réduites
  6. Échec des nœuds, suppression automatique du cluster.

Dans ce tutoriel, nous expliquerons comment configurer MariaDB Galera Cluster 10.1 avec 3 nœuds exécutés sur le serveur Ubuntu 16.04. Nous testerons également la réplication de la base de données entre tous les nœuds.

Exigences

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

Mise en route

Tout d'abord, vous devrez mettre à jour tous les nœuds avec la dernière version. Vous pouvez tous les mettre à jour avec la commande suivante :

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

Ensuite, redémarrez tous les nœuds pour appliquer ces modifications. Ensuite, connectez-vous avec l'utilisateur sudo et passez à l'étape suivante.

Installer MariaDB Galera

Les packages MariaDB Server et MariaDB Galera Server sont combinés dans la version MariaDB 10.1. Par défaut, MariaDB 10.1 n'est pas disponible dans les référentiels Ubuntu par défaut, vous devrez donc ajouter le référentiel MariaDB sur tous les nœuds.

Tout d'abord, ajoutez la clé du référentiel MariaDB avec la commande suivante :

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Ensuite, ajoutez le référentiel et mettez à 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 main'
sudo apt-get update - v

Une fois le référentiel mis à jour, installez MariaDB avec la commande suivante :

sudo apt-get install mariadb-server rsync -y

La commande ci-dessus installera MariaDB avec Galera et plusieurs dépendances. Les parties Galera restent inactives jusqu'à ce qu'elles soient configurées, comme un plugin ou un moteur de stockage. Une fois MariaDB installée sur tous les nœuds, vous pouvez procéder à la sécurisation de MariaDB.

Par défaut, l'installation de MariaDB n'est pas sécurisée, vous devrez donc sécuriser 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, de supprimer les utilisateurs anonymes, d'interdire la connexion root à distance et de supprimer la base de données de test. Répondez à toutes les questions comme indiqué ci-dessous :

Entrez le mot de passe actuel pour root (entrez pour aucun) :Modifier le mot de passe root ? [O/n] nSupprimer les utilisateurs anonymes ? [O/n] YInterdire la connexion root à distance ? [O/n] Supprimer la base de données de test et y accéder ? [O/n] YRecharger les tables de privilèges maintenant ? [O/n] O

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

Configurer le cluster MariaDB sur Node1

Tout d'abord, allez au Node1 et créez un fichier de configuration pour Galera. Par défaut, MariaDB lit la configuration à partir du répertoire /etc/mysql/conf.d/. Pour ce faire, exécutez la commande suivante :

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

Ajoutez les lignes suivantes :

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Configuration du fournisseur Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Configuration du cluster Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Configuration de la synchronisation Galerawsrep_sst_method=rsync# Configuration du nœud Galerawsrep_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 Node1

Ajouter Node2 sur Galera Cluster

Ensuite, allez au Node2 et créez un fichier de configuration pour Galera :

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

Ajoutez les lignes suivantes :

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Configuration du fournisseur Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Configuration du cluster Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Configuration de la synchronisation Galerawsrep_sst_method=rsync# Configuration du nœud Galerawsrep_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 Galera Cluster

Ensuite, allez au Node3 et créez un fichier de configuration pour Galera :

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

Ajoutez les lignes suivantes :

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Configuration du fournisseur Galerawsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Configuration du cluster Galerawsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Configuration de la synchronisation Galerawsrep_sst_method=rsync# Configuration du nœud Galerawsrep_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 State Snapshot Transfer, 4567 pour le trafic de réplication Galera Cluster et 4568 pour Incremental State Transfer. Vous devrez donc autoriser tous ces ports à l'aide du pare-feu UFW. Vous pouvez le faire en exécutant la commande suivante sur tous les nœuds :

Tout d'abord, activez le pare-feu UFW avec la commande suivante :

activer sudo ufw

Ensuite, autorisez tous les ports avec la commande suivante :

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

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

statut sudo ufw

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

Démarrer le cluster MariaDB Galera

Après avoir configuré avec succès tous les nœuds, accédez au nœud 1 et démarrez Galera Cluster.

Avant que Galera puisse démarrer, 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 :

sudo systemctl stop mysql

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

sudo galera_new_cluster

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

mysql -u root -p -e "afficher le statut comme 'wsrep_cluster_size'"

Si tout va bien, vous devriez voir le résultat suivant :

+--------------------+-------+| nom_variable | Valeur |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+

Sur le Node2, démarrez le service MariaDB :

sudo systemctl démarrer mysql

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

sudo systemctl état mysql

Si tout va bien, vous devriez voir le résultat suivant :

 ?? mariadb.service - Serveur de base de données MariaDB Chargé :chargé (/lib/systemd/system/mariadb.service ; activé ; préréglage fournisseur :activé) Actif :actif (en cours d'exécution) depuis le dim 2017-09-17 10:11:20 EDT ; Il y a 10 minutes Processus :715 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Processus :713 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0 /SUCCESS) Processus :545 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] &&VAR=|| VAR=`/usr/bin/galera_recovery` ; [ $ ? -eq 0 ] &&systemctl set Processus :535 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Processus :514 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) PID principal :661 (mysqld) Status :« Prendre vos requêtes SQL maintenant... » Tâches :26 (limite :4915) CGroup :/system.slice/mariadb.service ??????661 /usr/sbin/mysqld17 sept. 10:11:11 debian systemd[1] :Démarrage du serveur de base de données MariaDB...17 sept. 10:11:15 debian mysqld[661] :2017-09-17 10:11:15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) commençant par processSep 17 10:11:20 debian systemd[1 ] :Démarrage du serveur de base de données MariaDB.

Maintenant, votre deuxième nœud devrait être automatiquement lié au cluster. Vous pouvez le vérifier avec la commande suivante :

mysql -u root -p -e "afficher le statut comme 'wsrep_cluster_size'"

Si tout fonctionne bien, la taille du cluster doit être définie sur deux :

+--------------------+-------+| nom_variable | Valeur |+--------------------+-------+| wsrep_cluster_size | 2 |+--------------------+-------+

Sur le Node3, démarrez le service MariaDB :

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

Si tout fonctionne bien, la taille du cluster doit être définie sur trois :

+--------------------+-------+| nom_variable | Valeur |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+

Votre cluster fonctionne maintenant et communique les uns avec les autres.

Tester la réplication de la base de données

Maintenant que tous les nœuds sont en ligne, il est temps de tester la réplication de la base de données sur le cluster Galera. Commençons par créer une base de données sur Node1 et vérifions si elle est répliquée sur tous les nœuds.

Tout d'abord, connectez-vous à la console MariaDb avec la commande suivante :

mysql -u root -p

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

MariaDB [(none)]> créer la base de données test_db ;
MariaDB [(none)]> afficher les bases de données ;
+--------------------+| Base de données |+--------------------+| test_db |+--------------------+

Allez maintenant au Node2 et au Node3, puis vérifiez que la réplication fonctionne ou non :

mysql -u root -p
MariaDB [(aucun)]> afficher les bases de données ;
+--------------------+| Base de données |+--------------------+| test_db |+--------------------+

Toutes nos félicitations! vous avez installé et configuré avec succès MariaDB Galera Cluster sur le serveur Ubuntu 16.04.

Conclusion

J'espère que vous avez maintenant suffisamment de connaissances pour installer et configurer MariaDB Galera Cluster sur Ubuntu 16.04. Vous pouvez désormais facilement évoluer jusqu'à plusieurs, voire des dizaines, de nœuds distincts. Si vous avez des doutes ou des questions supplémentaires, reportez-vous au lien Galera Cluster Doc


Ubuntu
  1. Comment installer MariaDB 10.4 sur Ubuntu 18.04

  2. Comment installer MariaDB sur Ubuntu 18.04

  3. Comment configurer le cluster MariaDB Galera sur Ubuntu 20.04

  4. Comment installer LiteCart sur Ubuntu 15.04

  5. Comment installer et configurer MariaDB Galera Cluster sur Ubuntu 18.04

Comment installer PHPList sur Ubuntu 15.04

Comment installer ImpressCMS sur Ubuntu 15.04

Comment installer Nextcloud sur Ubuntu 16.04

Comment installer Mahara sur Ubuntu 16.04

Comment installer MariaDB sur Ubuntu 16.04

Comment installer MariaDB sur Ubuntu