19
0
Fork 0

Switcher un slave avec une réplication "ancien mode" vers la réplication GTID + correction typo

This commit is contained in:
emorino 2021-07-27 11:19:58 +02:00
parent e8f9337cd5
commit 7e5f2731fd
1 changed files with 26 additions and 7 deletions

View File

@ -38,7 +38,7 @@ mysql> SET sql_log_bin = 0;
> *Note* : cela nécessite le droit MySQL _SUPER_
## Activation d'une réplication MASTER/SLAVE avec la position des binlogs (legacy mode)
## Activation d'une réplication MASTER/SLAVE avec la position des binlogs (ancien mode)
Il faut récupérer les informations *MASTER_LOG_FILE* et *MASTER_LOG_POS* :
- soit sur l'un des deux serveurs inactifs avec `SHOW MASTER STATUS` (dans le cas de deux serveurs avec _datadir_ identique),
@ -98,15 +98,17 @@ Si dump compréssé :
**ATTENTION** : L'implémentation des GTID entre MySQL et MariaDB sont différentes et incompatibles entres-elles.
### Mise en place d'un réplica depuis un dump
On peux connaitre la position du GTID lorsque l'on fait un dump --master-data avec mysqldump, il nous donne le fichier binaire et sa position.
Pour connaitre la valeur GTID avec le fichier binaire et sa position, il faut utilisé la fonction BINLOG_GTID_POS, comme ceci, si le fichier binaire est "master-bin.000001" et sa position "600" par exemple :
Mysqldump avec l'option --master-data ou --dump-slave donne la position GTID en début de fichier de dump, en commentaires.
Pour connaitre la valeur GTID avec le fichier binaire et sa position, si on fait un backup physique du master par exemple et qu'on fait un SHOW MASTER STATUS, il faut utilisé la fonction BINLOG_GTID_POS, comme ceci, si le fichier binaire est "master-bin.000001" et sa position "600" par exemple :
~~~
mysql> SELECT BINLOG_GTID_POS("master-bin.000001", 600);
0-1-2
~~~
On peux donc mettre la valeur GTID "0-1-2" sur la variable *gtid_slave_pos*, puis démarré la réplication avec un CHANGE MASTER TO, en positionnant la variable *master_use_gtid* sur *slave_pos* :
On peut donc mettre la valeur GTID "0-1-2" sur la variable *gtid_slave_pos*, puis démarré la réplication avec un CHANGE MASTER TO, en positionnant la variable *master_use_gtid* sur *slave_pos* :
~~~
mysql> SET GLOBAL gtid_slave_pos = "0-1-2";
@ -123,13 +125,14 @@ mysql> CHANGE MASTER TO
### Activation d'une réplication MASTER/SLAVE avec Mariabackup
Voir la doc de Mariabackup ici : <https://wiki.evolix.org/HowtoMySQL/mariabackup#mise-en-place-dune-r%C3%A9plication-esclave-avec-mariabackup>
On peux récupéré la position GTID lors d'un backup fait par Mariabackup dans le fichier *xtrabackup_binlog_info*
On peut récupérer la position GTID lors d'un backup fait par Mariabackup dans le fichier *xtrabackup_binlog_info*
### Activation d'une boucle de réplication MASTER/MASTER
Lorsque l'on veux mettre en place une boucle de réplication MASTER/SLAVE des deux côtés, on commence a mettre en place une réplication MASTER/SLAVE classique, soit vaec un mysqldump --master-data, soit avec Mariabackup comme indiqué plsu haut.
Lorsque l'on veux mettre en place une boucle de réplication MASTER/SLAVE des deux côtés, on commence a mettre en place une réplication MASTER/SLAVE classique, soit vaec un mysqldump --master-data, soit avec Mariabackup comme indiqué plus haut.
Un fois le MASTER/SLAVE synchronisé, sur le MASTER où l'on veux configuré un SLAVE, on vérifie que la variable gtid_slave_pos soit bien vide :
Une fois le MASTER/SLAVE synchronisé, sur le MASTER où l'on veux configuré un SLAVE, on vérifie que la variable gtid_slave_pos soit bien vide :
~~~
mysql> show variable like 'gtid_slave_pos';
@ -146,6 +149,22 @@ mysql> CHANGE MASTER TO
master_use_gtid=slave_pos;
~~~
### Switcher un slave avec une réplication "ancien mode" vers la réplication GTID :
Si on a déjà une réplication existante et que l'on veux la basculer en mode GTID, on peut le faire de la façon suivante :
~~~
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO
MASTER_HOST='192.168.0.33',
MASTER_USER='repl',
MASTER_PASSWORD='PASSWORD',
master_use_gtid=current_pos;
mysql> START SLAVE;
~~~
## Configuration avancée
<https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html>