Comment configurer la réplication MariaDB (maître-esclave) dans Centos / Rhel 7 et Debian 8/9
- 4477
- 1151
- Romain Martinez
Même quand certains, les gens entendent la phrase «Réplication de la base de données«, Ils l'associent souvent à la nécessité d'avoir plusieurs copies des mêmes informations pour éviter la perte de données en cas de défaillance matérielle ou de corruption des données. Bien que cela soit vrai dans une certaine mesure, il y a beaucoup plus à répliquer la base de données que le concept commun de sauvegarde d'une base de données et de disponibilité des données.
MariaDB Master-Slave Replication in Centos / Rhel 7 et Debian 8/9Parmi les autres avantages de la réplication de la base de données dans une configuration maître-esclave, nous pouvons mentionner:
- Les sauvegardes peuvent être effectuées sur le serveur d'esclaves sans affecter (et être affecté par) les opérations d'écriture dans le maître.
- Des opérations à forte intensité de ressources (comme l'analyse des données) peuvent être effectuées sur l'esclave sans influencer les performances du maître.
Dans cet article, nous expliquerons comment mettre en place une réplication maître-esclave dans Mariadb 10.1. Contrairement à la réplication classique, Mariadb a introduit le concept de ID de transaction globale (Grides) dans v10.0, qui permet de changer un esclave pour se connecter et se reproduire à partir d'un autre maître. En plus de cela, l'état de l'esclave est enregistré de manière à se marier (les mises à jour de l'État sont effectuées dans la même transaction que les mises à jour des données).
Si vous cherchez Mysql réplication sous Centos / Rhel 6, Suivez ce guide Configuration de la réplication MySQL (Master-Slave) sur Centos / Rhel 6
Installation de MariaDB 10.1 à Centos / Rhel 7 et Debian 8/9
Notre environnement de test se compose des machines suivantes (les deux sont Centos 7):
Maître: 192.168.0.18 esclaves: 192.168.0.19
Pour installer la dernière version de MariaDB, nous devrons ajouter leurs référentiels à nos serveurs. Si vous utilisez une ancienne version de Mariadb Say 5.5, envisagez de passer au dernier 10.1 version en utilisant l'article ci-dessous.
- Upgrde mariadb 5.5 à Mariadb 10.1
Dans Centos / Rhel
Créer un fichier nommé Mariadb.repo
à l'intérieur / etc / yum.se soustraire.d avec le contenu suivant sur les deux Maître et Esclave Systèmes:
# Mariadb 10.1 Liste du référentiel CentOS - Créé 2016-01-23 14:16 UTC # http: // mariaDB.org / mariaDB / Repositories / [MariaDb] name = Mariadb Bustanl = http: // yum.mariadb.org / 10.1 / Centos7-AMD64 gpgkey = https: // yum.mariadb.org / rpm-gpg-key-mariadb gpgcheck = 1
Enregistrez le fichier et installez MARIADB sur les deux serveurs à l'aide de YUM:
# yum Update && yum installer Mariadb-Server MariaDB-Client
Dans Debian / Ubuntu
Ajoutez la clé pour authentifier les packages et le référentiel MariaDB:
# apt-get install logiciel-properties-common # apt-key adv --rev-keys - keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db # add-att-repository 'deb [arch = amd64, i386] http: // miroir.Edatel.filet.CO / MARIADB / REPO / 10.1/Debian Jessie principal'
Note: Remplacer la distribution nom et nom de code Dans la ligne ci-dessus surlignée.
Installer en utilisant apt-get commande:
# Mise à jour apt-get # apt-get install mariaDb-serverVérifiez la version MariaDB sur Master Slave-Server
Une fois que vous avez installé MariaDB, exécutez le mysql_secure_installation
Procédure sur le maître et l'esclave, configurons une base de données d'échantillon de test dans la machine principale.
Configuration d'un exemple de base de données MySQL sur Master
Nous allons maintenant configurer dans le serveur maître le Employés
base de données de https: // github.com / datacharmer / test_db (qui fournit un ensemble de données de 4 millions d'enregistrements répartis sur six tables) en deux étapes simples:
Clone le référentiel et l'utiliser pour importer l'exemple de base de données dans votre installation MARIADB:
# git clone https: // github.com / datacharmer / test_db # cd test_db # mysql < employees.sql
Configuration du serveur MySQL sur Master
Pour configurer le maître, suivez ces étapes:
ÉTAPE 1: Modifier le / etc / mon.CNF
déposer. Sous le [mysqld]
Section, ajouter les quatre lignes suivantes:
log-bin server_id = 1 réplique-do-db = employés bind-address = 192.168.0.18
et redémarrer Mariadb:
# systemctl redémarrer mariaDB
ÉTAPE 2: Connectez-vous au serveur MARIADB en tant que racine, créez l'esclave utilisateur et attribuez les subventions nécessaires:
MariaDb [(aucun)]> Créer l'utilisateur «esclave» @ «localhost» identifié par «slavepassword»; MariaDb [(aucun)]> Slave de réplication de la subvention sur *.* À esclave identifié par «slavepassword» avec l'option de subvention; MariaDb [(aucun)]> Privilèges de rinçage; MariaDb [(aucun)]> Tables à chasse d'eau avec verrouillage de lecture; MariaDb [(aucun)]> Afficher le statut maître;
Le dernier commande (Afficher le statut maître) Renvoie la position actuelle dans le journal binaire (les coordonnées exactes qui indiquent exactement à quel point l'esclave devrait commencer à se répliquer à partir de:
Configurer MySQL Master pour la réplicationÉTAPE 3: Quitter l'invite mariadb (avec sortie;
) et utiliser la commande suivante pour prendre un instantané de la base de données des employés. Quand tu frappes Entrer, Vous serez invité à taper le mot de passe pour root que vous avez configuré plus tôt via mysql_secure_installation
:
# mysqldump -u root -p employés> employés-dump.SQL
Une fois le vidage terminé, connectez-vous à nouveau au serveur de base de données pour déverrouiller les tables, puis quitter:
MariaDb [(aucun)]> Déverrouiller les tables; MariaDb [(aucun)]> sortie;
ÉTAPE 4: Copiez le dépotoir dans l'esclave:
# Employés SCP-Dump.sql [e-mail protégé]: / root /
Étape 5: Courir le mysql_upgrade
Procédure pour mettre à niveau les tables système (vous serez invité à entrer le mot de passe racine MariADB):
# mysql_upgrade -u root -p
Étape 6: Autorisez le service de base de données via le pare-feu:
# Firewall-CMD --Add-Service = MySQL # Firewall-CMD --Add-Service = MySQL - Permanent # Firewall-CMD - Reload
Maintenant, configurons l'esclave.
Configuration du serveur MySQL sur esclave
Pour configurer l'esclave, suivez ces étapes:
ÉTAPE 1: Créez le compte pour effectuer les tâches de réplication. Connectez-vous au serveur MARIADB local avec:
# mysql -u root -p
et entrez le mot de passe que vous avez configuré plus tôt.
ÉTAPE 2: Une fois connecté au serveur de base de données, créez l'utilisateur et une base de données vide et les autorisations de subvention:
MariaDb [(aucun)]> Créer des employés de la base de données; MariaDb [(aucun)]> Accorder tous les privilèges sur les employés.* À «esclave» @ «localhost» avec une option de subvention; MariaDb [(aucun)]> Privilèges de rinçage;
ÉTAPE 3: Quittez l'invite MariaDB et chargez le vidage créé dans le serveur maître:
# MySQL -U Root -P Employés < employees-dump.sql
ÉTAPE 4: Modifier le / etc / mon.CNF
fichier pour affecter un serveur IDENTIFIANT à l'esclave sous le [mysqld]
section. Notez qu'il doit être un entier différent de celui 1, Comme nous avons utilisé 1 Dans le maître:
server_id = 2 réplique-do-db = employés
Redémarrez le serveur de base de données:
# systemctl redémarrer mariaDB
Étape 5: Courir le mysql_upgrade
Procédure pour mettre à niveau les tables système (vous serez invité à entrer le mot de passe racine MariADB):
# mysql_upgrade -u root -p
Étape 6: Une fois le vidage importé dans l'esclave, nous ne sommes que quelques étapes pour commencer à reproduire. Connectez-vous à la base de données et exécutez les commandes suivantes dans l'invite MariaDB. Portez une attention particulière à la Maître_log_file
et Maître_log_pos
variables, qui devraient correspondre aux valeurs renvoyées par Afficher le statut maître à l'étape 2 de «Configuration du maître» ci-dessus.
MariaDb [(aucun)]> Changer de maître en master_host = "192.168.0.18 ", master_user =" esclave ", maître_password =" slavepassword ", master_port = 3306, maître_log_file =" maître-bin.000001 ", master_log_pos = 314, maître_connect_retry = 10, master_use_gtid = current_pos;
Étape 7: Démarrez l'esclave et vérifiez son statut sans sortir de l'invite MariaDB:
MariaDb [(aucun)]> Commencer l'esclave; MariaDb [(aucun)]> Afficher le statut d'esclave \ g;
Non pas que vous en ayez besoin maintenant, mais notez que vous pouvez arrêter l'esclave avec:
MariaDb [(aucun)]> Arrêter l'esclave;
si la Afficher le statut d'esclave \ g;
la commande renvoie toutes les erreurs. Utilisez ces erreurs pour dépanner puis exécuter Commencer l'esclave;
pour tester à nouveau.
Tester la réplication de la base de données MySQL / MARIADB
Ajoutons un enregistrement au employés table dans le serveur maître:
MariaDb [(aucun)]> Insérer dans les employés (EMP_NO, naissance_Date, First_name, Last_name, Gender, Hire_Date) Valeurs (500000, '1983-07-12', 'Dave', 'NULL', 'M', '2014-12-12');
Vérifiez ensuite que ce changement a été reproduit dans l'esclave:
MariaDb [(aucun)]> Utiliser les employés; MariaDb [(aucun)]> Sélectionnez * dans les employés où EMP_NO = 500000;Vérifiez la réplication de la base de données MARIADB MySQL
Comme vous pouvez le voir, la réplication fonctionne correctement du maître à l'esclave.
Résumé
Dans cet article, nous avons expliqué comment installer la dernière version de MariaDB dans Centos / Rhel 7 et Debian 8/9, et a discuté de la façon de mettre en place une réplication maître-esclave avec GTIDS. Pour plus d'informations, vous souhaiterez peut-être vous référer au Guide de réplication MARIADB et n'hésitez pas à nous contacter en utilisant le formulaire ci-dessous si vous avez des questions ou des commentaires.
- « Comment installer et configurer pfSense 2.1.5 (pare-feu / routeur) pour votre réseau domestique / bureau
- 3 façons d'installer ATOM Text Editor dans OpenSUSE »