relecture [5/n]

This commit is contained in:
gcolpart 2016-12-16 02:03:44 +01:00
parent 12d4fd62b4
commit 57553c86ad

View file

@ -1,5 +1,5 @@
---
title: Howto MySQL : réplication.
title: Howto MySQL : réplication
...
Pour le guide d'installation et d'usage courant, consultez [/HowtoMySQL]().
@ -30,7 +30,7 @@ Récupérer les informations sur `MASTER_LOG_FILE` et `MASTER_LOG_POS` dans le d
Sur le serveur B (le _slave_ en mode master-slave), exécuter :
~~~
CHANGE MASTER TO
mysql> CHANGE MASTER TO
MASTER_HOST='$MASTER_IP',
MASTER_USER='repl',
MASTER_PASSWORD='XXX',
@ -38,11 +38,12 @@ CHANGE MASTER TO
MASTER_LOG_POS=NNN;
~~~
**Bien que non obligatoire, il est recommandé de toujours indiquer les directives `MASTER_LOG_FILE` et `MASTER_LOG_POS`**
/!\\ **Bien que non obligatoire, il est recommandé de toujours indiquer les directives `MASTER_LOG_FILE` et `MASTER_LOG_POS`**
Pour exclure une base de la réplication, dans `/etc/mysql/my.cnf` :
Pour exclure une base de la réplication :
~~~
~~~{.ini}
[mysqld]
binlog-ignore-db = mysql
~~~
@ -61,7 +62,8 @@ Query OK, 0 rows affected (0.00 sec)
Pour éviter que la réplication démarre automatiquement au démarrage, on ajoutera dans la configuration :
~~~
~~~{.ini}
[mysqld]
skip-slave-start
~~~
@ -75,9 +77,10 @@ mysql> SET sql_log_bin = 0;
~~~
**Astuce 2** : Pour divers raisons (notamment la réplication de données déjà répliquées !), on devra activer l'option
suivante dans le my.cnf :
suivante :
~~~
~~~{.ini}
[mysqld]
log-slave-updates
~~~
@ -104,7 +107,7 @@ avec la commande `START SLAVE`. Voici quelques erreurs possibles
**Zapper l'erreur en cours**
~~~
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
~~~
**Fichier de clé incorrect**
@ -113,7 +116,7 @@ SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
Incorrect key file for table './base/table.MYI'; try to repair it
~~~
Il faut réparer la table concernée
Il faut réparer la table concernée.
**Doublon sur clé unique**
@ -205,13 +208,13 @@ L'outil vérifie l'intégrité de la réplication en effectuant des requêtes de
La méthode la plus simple pour l'utiliser est d'autoriser le master à se connecter au slave (authentification MySQL). Ainsi, il s'occupe lui-même de faire le nécessaire pour identifier les erreurs. Il suffira donc de lancer la commande sans argument pour qu'il identifie les incohérences. On pourra réaliser un cron avec l'argument `-q` qui ne fait remonter que les erreurs.
~~~
MAILTO=jdoe@exemple.com
MAILTO=jdoe@example.com
42 9 * * 7 pt-table-checksum -q
~~~
### pt-table-sync
Si `pt-table-checksum` vous a remonté des incohérences, vous pouvez avec cet outil les corriger. Cela va identifier les différences et les corriger avec un `REPLACE` sur le master (qui sera donc répliqué sur le slave), garantissant la cohérence des données.
Si *pt-table-checksum* vous a remonté des incohérences, vous pouvez avec cet outil les corriger. Cela va identifier les différences et les corriger avec un `REPLACE` sur le master (qui sera donc répliqué sur le slave), garantissant la cohérence des données.
Exemple :