Isyweb est fermé et ne propose plus aucun de ses services !

Paramètrer mysql en mode DUPLICATION MASTER / SLAVE

Installer et configurer l'application serveur linux : Paramètrer mysql en mode DUPLICATION MASTER / SLAVE

Ce tutoriel est compatible avec les distributions suivantes : DebianDebian

Tutoriel

Voici un tutoriel qui permet de paramètrer mariadb / mysql en mode DUPLICATION MASTER / SLAVE.


Si vous ne savez pas ce que ça signifie, c'est assez simple. Le serveur mariadb en master/maître va automatiquement se répliquer sur un second serveur en mode esclave/slave de manière uni-directionelle.

En cas de problème avec votre serveur maitre, vous aurez le serveur esclave en backup... Mais attention, si une mauvais manip vous fait effacer des données, elles seront également effacées sur le serveur slave.... C'est pourquoi, le moyen le plus sécure est d'avoir plusieurs backups; et du coup vous pouvez faire des backups depuis votre serveur slave, ce qui vous permettra de ne pas avoir de latence indésirable sur votre serveur maitre durant ces opérations...


Allons-y !


Vous aurez auparavant installer maria-db avec cette commande, n'est ce pas?
# aptitude install mariadb-server

Et bien entendu vous avez paramétrer le compte root et tout ça sur les 2 serveurs?
# mysql_secure_installation

Sur le serveur MASTER


Réglons la configuration mariadb du MASTER
# nano /etc/mysql/mariadb.conf.d/50-server.cnf
Décomentez ces 2 lignes :
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
bind-address = IP-PUBLIQUE-DE-VOTRE-SERVER-MASTER


Redémarrer MARIADB du MASTER
# systemctl restart mariadb

Donc connectez-vous à mysql en root sur votre serveur MASTER
# mysql -uroot -p

Ensuite, créons un nouveau compte que nous pouvons appeller REPLICATOR qui a pour mot de passe SUPERPASS et bloquons toutes les tables !

CREATE USER 'REPLICATOR'@'%' IDENTIFIED BY 'SUPERPASS';

GRANT REPLICATION SLAVE ON *.* TO 'REPLICATOR'@'%';
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;


Si tout est OK, il vous est retourné un nom de fichier bin et sa position : notez-les et ne quittez pas cette fenêtre ou le LOCK va se lever.

Dans un autre session, faites un dump de vos bases de données
# mysqldump -u root -p nom_de_votre_base_de_donnees --routines > /root/bdd.sql

Toujours depuis MASTER, envoyons notre ficher.sql vers SLAVE avec scp
# scp -P 22 /root/bdd.sql [email protected]_SERVEUR_SLAVE:/root/

Vous pouvez maintenant lever le lock sur l'autre session mysql avec "UNLOCK TABLES;" ou quitter la session devrait avoir le même effet.

mysql -u root -p -e "create database nom_de_votre_base_de_donnees";


OK, passons au serveur SLAVE !


Réglons la configuration mariadb du SLAVE
# nano /etc/mysql/mariadb.conf.d/50-server.cnf
Décomentez/Vérifiez ces 2 lignes :
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log


Redémarrez le serveur MARIADB du SLAVE
# systemctl restart mariadb

Créez vos bases de données et importez les données
# mysql -u root -p -e "create database nom_de_votre_base_de_donnees";
# mysql -u root -p nom_de_votre_base_de_donnees < /root/bdd.sql

Maintenant connectez-vous à mysql
# mysql -uroot -p

Et réglons le serveur slave (pensez à modifier les données, y compris la position et nom du fichier)

STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='IP_DU_SERVEUR_MASTER',
MASTER_USER='REPLICATOR',
MASTER_PASSWORD='SUPERPASS',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123456789,
MASTER_CONNECT_RETRY=10;
START SLAVE;
SHOW SLAVE STATUS;


Si tout va bien c'est terminé... Pensez à supprimer les fichiers dump /root/bdd.sql de vos 2 serveurs et à mettre en place un backup (mysqldump) quotidient ou plus sur votre serveur slave !


Petit bonus... Pour monitorer votre serveur slave (oui, car vous n'y regarderez plus ... )
Une astuce simple et efficace est de faire un script shell (a ajouter en cron!) qui récupère le dernier enregistrement d'une table bien précise (qui contiendra donc une date et qui a des insert régulier donc...)
il suffira de comparer la date avec la date du jour... si les dates diffèrent, il faudra vous envoyez un petit mail !



Revenir aux listes des applications Linux

Créer un site web avec Isyweb.com © 1999 - 2020 - Tous les prix affichés sur Isyweb.com sont HTVA