Fusion des sections Master/Master
This commit is contained in:
parent
4c0b83a540
commit
8f290adb81
|
@ -130,26 +130,6 @@ Voir la doc de [Mariabackup](mariabackup#mise-en-place-dune-réplication-esclave
|
||||||
|
|
||||||
On peut récupérer 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 avec un mysqldump --master-data, soit avec Mariabackup comme indiqué plus haut.
|
|
||||||
|
|
||||||
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';
|
|
||||||
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;
|
|
||||||
~~~
|
|
||||||
|
|
||||||
### Switcher réplication "ancien mode" vers GTID
|
### Switcher réplication "ancien mode" vers GTID
|
||||||
|
|
||||||
|
@ -167,6 +147,7 @@ mysql> CHANGE MASTER TO
|
||||||
mysql> START SLAVE;
|
mysql> START SLAVE;
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## 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>
|
||||||
|
@ -188,6 +169,7 @@ master-password = PASSWORD
|
||||||
|
|
||||||
> *Note* : En cas d'une bande passante réduite, l'option *slave_compressed_protocol* permet une compression des données côté MASTER et décompression des données côté SLAVE (cela consomme évidemment davantage de ressources CPU).
|
> *Note* : En cas d'une bande passante réduite, l'option *slave_compressed_protocol* permet une compression des données côté MASTER et décompression des données côté SLAVE (cela consomme évidemment davantage de ressources CPU).
|
||||||
|
|
||||||
|
|
||||||
### Configuration d'une réplication partielle
|
### Configuration d'une réplication partielle
|
||||||
|
|
||||||
Une manière d'avoir une réplication peut être de ne pas écrire toutes les requêtes dans les [binlogs](/HowtoMySQL#binlogs) sur le serveur MASTER via les options *binlog_do_db*/*binlog_ignore_db* mais ce n'est pas conseillé car les binlogs ont souvent d'autres utilités (vérifier les requêtes, ou servir pour d'autres serveurs SLAVE).
|
Une manière d'avoir une réplication peut être de ne pas écrire toutes les requêtes dans les [binlogs](/HowtoMySQL#binlogs) sur le serveur MASTER via les options *binlog_do_db*/*binlog_ignore_db* mais ce n'est pas conseillé car les binlogs ont souvent d'autres utilités (vérifier les requêtes, ou servir pour d'autres serveurs SLAVE).
|
||||||
|
@ -230,19 +212,38 @@ replicate-wild-do-table = mysql.%
|
||||||
replicate-wild-ignore-table = foo%.%
|
replicate-wild-ignore-table = foo%.%
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Réplication MASTER/MASTER
|
|
||||||
|
|
||||||
_Le but est d'activer deux réplications MASTER/SLAVE entre les deux serveurs concernés._
|
### Activation d'une boucle de réplication MASTER/MASTER
|
||||||
|
|
||||||
|
C'est une réplication MASTER/SLAVE des deux côtés.
|
||||||
|
|
||||||
Utiliser ce type de réplication implique :
|
Utiliser ce type de réplication implique :
|
||||||
|
|
||||||
- Les INSERT ne sont pas immédiatement écrit car il y a un délai de quelques secondes. En cas, bannir un code qui ferait un INSERT puis un SELECT immédiat de la ligne insérée.
|
* Les INSERT ne sont pas immédiatement écrit car il y a un délai de quelques secondes. En cas, bannir un code qui ferait un INSERT puis un SELECT immédiat de la ligne insérée.
|
||||||
- Ne pas utiliser la directive `NOW()` en SQL.
|
* Ne pas utiliser la directive `NOW()` en SQL.
|
||||||
|
|
||||||
On conseille :
|
Étapes :
|
||||||
|
|
||||||
|
* Positionner la directive `auto-increment-increment = 10` sur chaque serveur
|
||||||
|
* Positionner la directive `auto-increment-offset` avec une valeur numérique différente sur chaque serveur (par exemple 0, 1, 2 etc.)
|
||||||
|
* Mettre en place une réplication MASTER/SLAVE classique, soit avec un mysqldump --master-data, soit avec Mariabackup comme indiqué plus haut.
|
||||||
|
* Une fois le MASTER/SLAVE synchronisé, sur le MASTER où l'on veut configurer un SLAVE, vérifier que la variable `gtid_slave_pos` est bien vide :
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mysql> show variable like 'gtid_slave_pos';
|
||||||
|
Empty set
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* Puis, 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;
|
||||||
|
~~~
|
||||||
|
|
||||||
- Positionner la directive `auto-increment-increment = 10` sur chaque serveur
|
|
||||||
- Positionner la directive `auto-increment-offset` avec une valeur numérique différente sur chaque serveur (par exemple 0, 1, 2 etc.)
|
|
||||||
|
|
||||||
### Réplications en chaîne
|
### Réplications en chaîne
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue