9 juil. 2012

Réplication MySQL : synchroniser les serveurs en minimisant l’indisponibilité du maître

Pour l'amour d'un dauphin
Je viens de m’apercevoir que je n'avais encore rien posté à propos de MySQL. Je corrige donc ce tort en partageant ici une note sur le processus permettant de répliquer un serveur en minimisant le temps d'innacessibilité du serveur maître. La procédure classique suggère habituellement d’arrêter le serveur maître, faire un backup avec mysqldump, importer le backup sur le (ou les) serveur(s) esclave(s), et enfin relancer le tout avec les paramètres de configuration appropriés.

Si l'on prends mon cas, j'ai un serveur MySQL dédié contenant plus de 300 Go de données et qui se doit d’être accessible (seul les redémarrages pour appliquer divers patchs le week-end sont tolérés). La procédure habituelle rendrait mon serveur indisponible pendant beaucoup trop longtemps pour que ça soit acceptable. Voici comment synchroniser un serveur maître et esclave en ne nécessitant qu'un seul redémarrage du maître.