Ajout Mise en place d’une réplication esclave avec Mariabackup
This commit is contained in:
parent
bf44fb3de4
commit
a452a1cb30
|
@ -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;
|
||||
~~~
|
||||
|
|
Loading…
Reference in New Issue