Mariadb Replication sur Rhel 8 / Centos 8

Mariadb Replication sur Rhel 8 / Centos 8
Les catastrophes se produisent, et quand elles le font, des données précieuses peuvent aller avec le vent, plus jamais pour être récupéré, et lorsqu'ils sont récupérés, les entreprises dépensent généralement jusqu'à des millions de dollars pour le récupérer et perdre un temps précieux qui aurait pu être passé dans d'autres opérations. Et c'est là que le concept de réplication entre en jeu. La réplication a simplement plusieurs copies d'une base de données. La réplication garantit qu'à tout moment, il existe des copies de sauvegarde de la base de données principale afin que dans le cas où la base de données baisse, les données peuvent toujours être récupérées des bases de données de sauvegarde garantissant la redondance et la haute disponibilité. Dans ce tutoriel, vous apprendrez à configurer la réplication MariaDB Master-Slave sur CentOS 8.

Configuration de laboratoire

Node maître - 192.168.43.13
Nœud esclave - 192.168.43.252

Étape 1: Installez MariADB sur les serveurs maître et esclaves

Pour commencer, vous devez installer MariaDB sur le maître et l'esclave. Suivez donc les étapes ci-dessous:

Tout d'abord, connectez-vous au serveur maître et mettez à jour les packages système comme indiqué:

$ sudo dnf mise à jour

Après avoir mis à jour avec succès votre système, continuez et installez MariaDB

$ sudo dnf installer mariaDb-server

Une fois l'installation réussie, vous pouvez vérifier que MariADB est installé en exécutant la commande:

$ rpm -qa | grep mariadb

Pour obtenir des informations plus détaillées, exécutez la commande:

$ RPM -QI MariaDB-Server

Maintenant, commencez le service MariaDB

$ sudo systemctl start mariadb

De plus, vous pouvez également permettre au service de démarrer automatiquement sur n'importe quelle session de démarrage / redémarrage.

$ sudo systemctl activer mariaDB

Pour vérifier que le moteur de la base de données MARIADB est opérationnel, émettez la commande:

$ sudo systemctl status mariadb

Parfait! Mariadb est opérationnel comme nous nous attendions.

En l'état, MariADB n'est pas sécurisé et tout utilisateur peut se connecter au moteur de la base de données et avoir accès à toutes les bases de données et apporter des modifications. Bien sûr, nous ne voulons pas que cela se produise et sécuriser la base de données devrait être une priorité absolue. Nous devons donc sécuriser le moteur de la base de données en définissant un mot de passe racine. Alors, exécutez la commande ci-dessous:

$ sudo mysql_secure_installation

Ce qui suit est une invite interactive qui devra définir le mot de passe racine pour la base de données et répondre à quelques questions.

Par défaut, MariaDB fonctionne sur le port 3306. Si vous exécutez un pare-feu, vous devez autoriser ce port afin que le moteur de base de données puisse être accessible aux utilisateurs et services externes.

Pour ouvrir le port sur le pare-feu, exécutez la règle du pare-feu suivant:

$ sudo firewalld-cmd --add-port = 3306 / tcp --zone = public --permanent

Pour que la règle soit appliquée, rechargez le pare-feu:

$ sudo Firewalld-CMD - Reload

Avec MariaDB installé avec succès et sécurisé sur le serveur maître, répétez les mêmes étapes sur le serveur esclave.

Étape 2: Configurez MariaDB sur le serveur maître

Nous devons configurer MariAdb Daemon afin que notre serveur maître visé agisse comme un serveur dans la configuration. Alors ouvrez le fichier de configuration / etc / mon.CNF

$ sudo vim / etc / mon.CNF

Ajoutez la configuration ci-dessous

[mysqld]
Bind-Address = 192.168.43.13
server-id = 1
log_bin = mysql-bin
binlog-format = ligne

Enregistrer et quitter le fichier de configuration. Pour effectuer les modifications, redémarrez le service MARIADB.

$ sudo systemctl redémarrer mariaDb-server

Étape 3: Configurer le serveur esclave

Tout comme le serveur maître, l'esclave doit être configuré pour agir comme un. Ouvrez donc le fichier de configuration comme avant:

$ sudo vim / etc / mon.CNF

Ajoutez la configuration ci-dessous

[mysqld]
Bind-Address = 192.168.43.252
serveur-id = 2
log_bin = mysql-bin
binlog-format = ligne

Soyez impatient de fournir un différent 'server_id'du serveur maître, qui est 2 dans ce cas. Et tout comme le serveur maître, le 'bind_address'Le paramètre doit pointer vers l'adresse IP de l'esclave.

Enregistrer et quitter le fichier.

Étape 3: Créez un utilisateur de réplication dans le serveur maître

Pour configurer l'esclave pour la réplication, nous devons retourner au nœud maître et créer un utilisateur de réplication. Connectez-vous au moteur de la base de données MARIADB.

$ mysql -u root -p

Tout d'abord, arrêtez l'utilisateur d'esclaves.

MariaDb [(aucun)]> Stop Slave;

Créer un utilisateur de réplication avec les commandes affichées:

MariaDb [(aucun)]> Slave de réplication de la subvention sur *.* À 'réplique_user' @ '192.168.43.252 '
Identifié par «p @ sword123»;
Requête ok, 0 lignes affectées (0.06 SEC)
MariaDb [(aucun)]> Privilèges de rinçage;
Requête ok, 0 lignes affectées (0.04 SEC)
MariaDb [(Aucun)]> Tables de rinçage avec verrouillage de lecture;
Requête ok, 0 lignes affectées (0.02 SEC)
MariaDb [(aucun)]> sortie;
Requête ok, 0 lignes affectées (0.02 SEC)

Par la suite, vérifiez cet état du maître en fonctionnant:

MariaDb [(aucun)]> afficher le statut maître \ g

Notez soigneusement les valeurs du nom de fichier et de la position. Ceux-ci seront plus tard utilisés pour configurer l'esclave pour la réplication.

De la sortie ci-dessus, cela se traduit par:

Fichier: mysql-bin.000001
Position: 1317

Sortez du moteur MariaDB et créez une copie de sauvegarde du serveur maître comme indiqué:

$ sudo mysqldump - toutes les databases -U root -p> masterdatabase.SQL

Connectez-vous à MariaDB et déverrouillez les tables:

MariaDB [(Aucun)]> Déverrouiller les tables;
MariaDb [(aucun)]> sortie;

N'oubliez pas la copie de sauvegarde que nous avons créée pour la base de données maître? Nous sommes prêts à le copier sur le serveur esclave. Alors exécutez la commande ci-dessous:

$ SCP Masterdatabase.SQL ROOT @ 192.168.43.13: / root /

Étape 4: Configurer l'esclave pour la réplication

De retour sur le nœud esclave, importez le fichier de sauvegarde que nous avons copié du maître vers le moteur MariaDB.

$ mysql -u root -p < masterdatabase.sql

Puis redémarrer le service MariaDB

$ systemctl redémarrer mariadb

Connectez maintenant au moteur de la base de données MARIADB et configurez l'esclave comme suit:

MariaDb [(aucun)]> Stop Slave; MariaDb [(Aucun)]> Changez maître en master_host = '192.168.43.13 ', Master_User =' Replica_User ',
Maître_password = 'p @ sword123', maître_log_file = 'mysql-bin.000001 ' ,
Maître_log_pos = 1317;

N'oubliez pas les valeurs que nous avons dit que vous devriez vous souvenir et éventuellement les noter lors de l'affichage de l'état du serveur maître? Ceux-ci ont finalement été définis dans le Maître_log_file et Maître_log_pos Attributs comme vu.

Enfin, commencez l'esclave pour initialiser l'esclave pour commencer à se répliquer du maître:

MariaDB [(Aucun)]> Start Slave;

Puis vérifiez l'état de l'esclave

MariaDB [(Aucun)]> Afficher le statut d'esclave;

Si la configuration a été parfaitement effectuée, vous ne devriez pas obtenir la sortie ci-dessous sans erreur.

L'esclave est maintenant prêt pour la réplication.

Étape 5: Tester la réplication de la base de données

En fin de compte, nous devons confirmer si notre configuration fonctionne. Alors connectez-vous à l'instance mariaDB dans le maître et créez une base de données de test comme indiqué

MariaDB [(Aucun)]> Créer une base de données réplique_db;

Puis confirmez la création de la base de données

MariaDb [(aucun)]> afficher des bases de données;

Retournez au nœud esclave et vérifiez si la base de données existe.

Parfait! Notre configuration fonctionne! Toutes les bases de données ultérieures créées dans le maître seront automatiquement reproduites et les modifications synchronisées sur le nœud esclave. Et cela nous amène à la fin de ce guide.