Outils pour utilisateurs

Outils du site


replicbdd

Réplications de bases de données entre serveurs MySQL

Principes

La réplication de MySQL permet de partager des informations entre des bases de données afin d’être certain que le contenu des différentes bases de données soit exactement le même.

La réplication SQL est généralement utilisée pour pouvoir supporter une charge plus importante en répartissant la charge sur plusieurs serveurs, contenant les mêmes bases de données. La réplication peut également être utilisée comme système de sauvegarde ou comme système de fail-over.

Le fail-over s’utilise dans un environnement où il est nécessaire d’avoir une haute disponibilité. Les équipements de fail-over prennent la relève lorsque l’équipement principal rencontre une panne. Ceci permet d’assurer une continuité de fonctionnement des services, alors qu’une panne est survenue.

Prérequis

Pour réaliser la réplication, vous devez disposer de deux serveurs (ou plus) possédant chacun les éléments suivants :

  • serveur LAMP (apache2, mysql-server, php) installé
  • application phpmyadmin installée
  • service MySQL configuré pour pouvoir accepter les connexions entrantes (en commentant la clause bind-address dans le fichier /etc/mysql/mariadb.conf.d/50-serveurs.cnf)

Démarche

Configuration du serveur maître

  1. Dans l’accueil de PHPMyAdmin du serveur S1, aller dans l’onglet « Réplication ». Cliquer sur le lien « configurer » de la partie « Réplication maître ». Un formulaire apparaît, choisissez la ou les bases de données à répliquer ou à exclure de la réplication vers votre serveur esclave.
  2. On vous demande alors de modifier le fichier de configuration de mysql/mariadb pour y rajouter quelques paramètres de configuration.
    Le fichier en question se trouve à l’adresse suivante sur votre serveur :
    * pour une installation MySql : /etc/mysql/my.cnf
    * pour une installation MariaDB (nouvelle déclinaison de MySQL) : /etc/mysql/mariadb.conf.d/50-server.cnf

    Contrairement à ce que vous dit PHPMyAdmin, ne copiez pas ces lignes à la fin de votre fichier de configuration mais quelque part entre « [mysqld] » et « [mysqldump] » ou se trouve déjà en commentaires les lignes “server-id=….”.

  3. Intervention sur le fichier de configuration :
    • Ajouter les lignes fournies par l'interface PhpMyadmin
    • Vérifier que le paramètre bind-address est commenté (ce qui vous permettra d’autoriser les connexions depuis d’autres IP).
    • Appliquer les droits 755 sur ce fichier (avec la commande chmod).
    • redémarrer le service mysql/mariadb
  4. Cliquer alors sur « Exécuter ». PHPMyadmin va appliquer les paramètres.
  5. Cliquer ensuite sur « Ajouter un utilisateur pour la réplication vers l’esclave ? ». Et remplir le formulaire.

Configuration du serveur esclave

Le message d'erreur suivant peut apparaître : “Connection to server is disabled, please enable $cfg['AllowArbitraryServer'] in phpMyAdmin configuration.”.
Il faudra modifier le fichier /etc/phpmyadmin/config.inc.php en ajoutant la clause $cfg['AllowArbitraryServer'] = TRUE ; juste avant le commentaire #end of server configuration

  1. Sur le serveur esclave S2, dans l’onglet « Réplication » cliquer sur « configurer le serveur esclave ? ».
  2. Modifier le même fichier my.cnf et rajouter cette fois ci simplement les lignes «[msqld]» et « server-id », en vous assurant que le numéro unique est bien celui fourni par l'interface. Redémarrer le service mysql.
  3. Remplir alors le formulaire avec les identifiants correspondant à l’utilisateur créé en étape « configuration serveur maitre »
  4. Cliquez ensuite sur « synchroniser les bases de données avec le serveur maître ». Ce qui va permettre de s’assurer, avant de démarrer le processus, que les données soient les mêmes sur les deux serveurs.
  5. cliquer sur « Démarrer ».

Et voila, votre base de données est répliquée.

replicbdd.txt · Dernière modification : 2020/07/26 16:27 de 127.0.0.1