Activation d'une réplication MASTER/SLAVE avec GTID
This commit is contained in:
parent
8614bce0db
commit
347cfbccce
|
@ -38,7 +38,7 @@ mysql> SET sql_log_bin = 0;
|
||||||
> *Note* : cela nécessite le droit MySQL _SUPER_
|
> *Note* : cela nécessite le droit MySQL _SUPER_
|
||||||
|
|
||||||
|
|
||||||
## Activation d'une réplication MASTER/SLAVE
|
## Activation d'une réplication MASTER/SLAVE avec la position des binlogs (legacy mode)
|
||||||
|
|
||||||
Il faut récupérer les informations *MASTER_LOG_FILE* et *MASTER_LOG_POS* :
|
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),
|
- soit sur l'un des deux serveurs inactifs avec `SHOW MASTER STATUS` (dans le cas de deux serveurs avec _datadir_ identique),
|
||||||
|
@ -93,6 +93,57 @@ Si dump compréssé :
|
||||||
# zcat mabase.sql.gz | mysql --init-command="SET SQL_LOG_BIN = 0;"
|
# zcat mabase.sql.gz | mysql --init-command="SET SQL_LOG_BIN = 0;"
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
## Activation d'une réplication MASTER/SLAVE avec GTID
|
||||||
|
|
||||||
|
### 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 :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
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* :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mysql> SET GLOBAL gtid_slave_pos = "0-1-2";
|
||||||
|
~~~
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mysql> CHANGE MASTER TO
|
||||||
|
MASTER_HOST='192.168.0.33',
|
||||||
|
MASTER_USER='repl',
|
||||||
|
MASTER_PASSWORD='PASSWORD',
|
||||||
|
master_use_gtid=slave_pos;
|
||||||
|
~~~
|
||||||
|
|
||||||
|
### 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*
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
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 :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mysql> show variable like 'gtid_slave_pos';
|
||||||
|
Empty set
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Alors on peut mettre en place la partie SLAVE avec un CHANGE MASTER TO depuis le MASTER vers le SLAVE :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mysql> CHANGE MASTER TO
|
||||||
|
MASTER_HOST='192.168.0.33',
|
||||||
|
MASTER_USER='repl',
|
||||||
|
MASTER_PASSWORD='PASSWORD',
|
||||||
|
master_use_gtid=slave_pos;
|
||||||
|
~~~
|
||||||
|
|
||||||
## Configuration avancée
|
## Configuration avancée
|
||||||
|
|
||||||
<https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html>
|
<https://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html>
|
||||||
|
|
Loading…
Reference in a new issue