La réplication Mysql, vous permet de synchroniser un ou plusieurs serveurs esclaves (slave) par rapport à un serveur maître. Cela a plusieurs intêrets allant de la création d’une infrastructure haute disponibilité à un système de sauvegarde. La partie qui m’intéresse aujourd’hui est la création d’un serveur de backup permettant d’être esclave de plusieurs serveurs maitre.
L’installation du serveur esclave mysql est simple puisqu’il s’agit d’une installation classique. Nous allons par contre démarrer plusieurs instances afin de cloisonner nos réplications.
Je pars du principe que l’instance initiale de Mysql ne sera pas utilisée et que pour chaque serveur maître, j’aurai donc une instance slave sur mon serveur de backup.
Pour créer une instance slave :
mysql_install_db --user=mysql --datadir=/var/lib/mysql1
Nous aurons donc les données de base pour démarrer notre instance mysql1.
Afin de compléter l’installation, je copie le dossier de configuration /etc/mysql/ vers /etc/mysql1/. Cela permet d’avoir une configuration simple et unique de chaque instance. Et notamment sous Debian, puisque nous avons le fichier debian.cnf qui contient le user debian-sys-maint qui est l’utilisateur permettant d’effectuer diverses vérifications au lancement du serveur. Hors dans le cas d’une réplication, cet utilisateur aura un mot de passe différent sur chacune des instances.
Il conviendra de modifier différents paramètres dans le fichier main.cf avec notamment :
et dans le fichier debian-start en modifiant le chemin de configuration pour pointer vers /etc/mysql1
Une fois cette étape réalisée, il reste à modifier le fichier /etc/init.d/mysql :
cp /etc/init.d/mysql /etc/init.d/mysql1 sed -i -e 's/etc\/mysql\//etc\/mysql1\//' /etc/init.d/mysql1 update-rc.d mysql1 defaults
L’installation du serveur maître est beaucoup plus simple :
Lancer une sauvegarde complète des bases et copier là vers le serveur de sauvearde
mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases --master-data > all.sql scp all.sql USER@SLAVE:all.sql
Pour lancer la réplication, importer la base précédement transmise sur votre serveur esclave puis démarrer la réplication.
Plan du site | Mentions légales | Contactez-moi | Gestion des cookies