diff --git a/HowtoMySQL/Replication.md b/HowtoMySQL/Replication.md index c94b0b17..b98a4757 100644 --- a/HowtoMySQL/Replication.md +++ b/HowtoMySQL/Replication.md @@ -392,13 +392,22 @@ On peut également avoir d'autres erreurs, par exemple _Could not execute Delete Si plusieurs types d'erreur à ignorer : `slave-skip-errors = 1032,1062` -L'inconvénient est qu'il faut redémarrer MySQL. Pour éviter cela on peut automatiser le zap de l'erreur (exemple avec l'erreur _1062_) en cours : +L'inconvénient est qu'il faut redémarrer MySQL. Pour éviter cela on peut automatiser le zap de l'erreur. + +Exemple avec l'erreur _1062_ : ~~~ # while true; do while mysql -e "show slave status" | grep '1062.Error.*REPORT'; \ do mysql -e "SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;"; done ; sleep 1; done ~~~ +Exemple avec l'erreur _1032_ (« Could not execute Delete_rows event ») : + +~~~ +# while true; do while mysql -e "show slave status" | grep 'Error_code: 1032'; \ + do mysql -e "SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;"; done ; sleep 1; done +~~~ + On peut également utilisé un script Shell plus évolué qui prendre les motifs à ignorer dans un fichier *error.txt* (expressions rationnelles étendues, compatibles _grep -E_) et qui proposera de zapper manuellement (ou pas) si l'erreur ne correspondant aux motifs : ~~~{.sh}