diff --git a/HowtoMySQL/mariabackup.md b/HowtoMySQL/mariabackup.md index 7a5cd33e..2d865c2c 100644 --- a/HowtoMySQL/mariabackup.md +++ b/HowtoMySQL/mariabackup.md @@ -203,5 +203,115 @@ Nous pouvons désormais restaurer le backup de la même manière que cité plus # mariabackup --copy-back --target-dir=/home/mariabackup/ ~~~ -Assurez-vous que les droit de _/var/lib/mysql/ soit correct. +Assurez-vous que les droits de _/var/lib/mysql/_ soit correct. +## Mise en place d'une réplication esclave avec Mariabackup + +Mariabackup facilite la configuration d'un esclave de réplication à l'aide d'une sauvegarde complète. + +La première étape consiste simplement à prendre et à préparer une nouvelle sauvegarde complète d'un serveur de base de données dans la topologie de réplication. + +Si le serveur de base de données source est le maître de réplication souhaité, il n'est pas nécessaire d'ajouter d'autres options lors de la sauvegarde complète. + +~~~ +# mariabackup --backup --target-dir=/home/mariabackup/ +~~~ + +Si le serveur de base de données source est un esclave de réplication nous devrions ajouter l'option _--slave-info_ et éventuellement l'option _--safe-slave-backup_ : + +~~~ +# mariabackup --backup --slave-info --safe-slave-backup --target-dir=/home/mariabackup/ +~~~ + +Et puis nous préparons la sauvegarde comme vous le feriez normalement : + +~~~ +# mariabackup --prepare --target-dir=/home/mariabackup/ +~~~ + +### Copier le backup sur le nouveau serveur esclave + +Une fois que le backup est terminé et préparé, nous pouvons le copier sur le nouveau serveur esclave : + +~~~ +rsync -avrP /home/mariabackup/ root@sql2:/home/mariabackup +~~~ + +### Restauration du backup sur le nouveau serveur esclave + +À ce stade, nous pouvons restaurer la sauvegarde dans le datadir, comme vous le feriez normalement : + +~~~ +# mariabackup --copy-back --target-dir=/home/mariabackup/ +~~~ +_Note_ : il faut s'assurer que aucun processus mysql ne tourne sur le slave, et que le datadir soit vide_ + + +Et ajuster les droits des fichiers, si nécessaire: + +~~~ +# chown -R mysql:mysql /var/lib/mysql/ +~~~ + +### Configuration du nouveau serveur slave + +Il faut maintenant configuré correctement notre serveur slave, comme nous ne faisons d'habitude, c'est à dire, création de l'utilisateur mysql 'repl' et configuration du _server-id_ : + +~~~ +MariaDB > CREATE USER 'repl'@'sql2' IDENTIFIED BY 'ReplPassWord'; +MariaDB > GRANT REPLICATION SLAVE ON *.* TO 'repl'@'sql2'; +~~~ + +~~~ +vim /etc/mysql/mariadb.conf.d/zzz-evolinux-custom.cnf + +server-id = 3 +~~~ + +### Démarrer la réplication sur le nouveau serveur slave + +À ce stade, nous devons obtenir les coordonnées de réplication du maître à partir du répertoire de sauvegarde d'origine. + +Si nous prenons la sauvegarde sur le maître, les coordonnées seront dans le fichier _xtrabackup_binlog_info_. + +Si nous prenons la sauvegarde sur un autre esclave et si nous fournissons l'option _--slave-info_, alors les coordonnées seront dans le fichier _xtrabackup_slave_info_. + +~~~ +cat /home/mariabackup/xtrabackup_binlog_info + +mysql-bin.000002 327 0-1-2 +~~~ + +Mariabackup vide les coordonnées de réplication sous deux formes: les coordonnées **GTID**, le fichier journal binaire et les coordonnées de position, comme celles que vous verriez normalement à partir de la sortie **SHOW MASTER STATUS**. + +Nous pouvons choisir le jeu de coordonnées à utiliser pour configurer la réplication. + +Quelles que soient les coordonnées utilisées, nous devrons configurer la connexion principale à l'aide de **CHANGE MASTER TO**, puis démarrer les threads de réplication avec **START SLAVE** + +* Par GTID : +Si nous voulons utiliser des GTID, nous devons d'abord définir gtid_slave_pos sur les coordonnées GTID extraites de _xtrabackup_binlog_info_ dans le répertoire de sauvegarde, puis _MASTER_USE_GTID = slave_pos_ dans la commande _CHANGE MASTER TO_, comme ceci : + +~~~ +SET GLOBAL gtid_slave_pos = "0-1-2"; +CHANGE MASTER TO + MASTER_HOST="sql1", + MASTER_PORT=3307, + MASTER_USER="repl", + MASTER_PASSWORD="ReplPassWord", + MASTER_USE_GTID=slave_pos; +START SLAVE; +~~~ + +* Par fichier et position : +Si nous voulons utiliser les binlogs et les coordonnées de position, nous définirions _MASTER_LOG_FILE_ et _MASTER_LOG_POS_ dans la commande _CHANGE MASTER TO_ avec les coordonnées du binlog extraite de _/home/mariabackup/xtrabackup_binlog_info_ ou de _xtrabackup_slave_info_ dans le répertoire de sauvegarde, selon que la la sauvegarde a été effectuée auprès du maître ou d'un esclave du maître : + +~~~ +CHANGE MASTER TO + MASTER_HOST="sql1", + MASTER_PORT=3307, + MASTER_USER="repl", + MASTER_PASSWORD="ReplPassWord", + MASTER_LOG_FILE='mysql-bin.000002', + MASTER_LOG_POS=327; +START SLAVE; +~~~