From 57553c86ad4296350e71ab358ef7278f75bfcafd Mon Sep 17 00:00:00 2001 From: gcolpart Date: Fri, 16 Dec 2016 02:03:44 +0100 Subject: [PATCH] relecture [5/n] --- MySQL/HowtoReplication.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/MySQL/HowtoReplication.md b/MySQL/HowtoReplication.md index fb451ed2..91aa6c88 100644 --- a/MySQL/HowtoReplication.md +++ b/MySQL/HowtoReplication.md @@ -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 :