Rétablir la réplication après désynchronisation
Sur le maître
Bloquer l'écriture sur les tables
mysql> FLUSH TABLES WITH READ LOCK;
Attention : Garder la session ouverte pour maintenir le verrou. En quittant la session, le verrou est libéré.
Relever les données d'index
mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 73 | test | manual,mysql | +------------------+----------+--------------+------------------+
Noter les valeurs de File et Position
Extraire un snapshot de la base de données
shell> mysqldump -u <username> -p --all-databases --master-data > dbdump.db
ou bien
shell> mysqldump -u <username> -p <dbname> --master-data > dbdump.db
Sur l'esclave
Arrêter la réplication
mysql> STOP SLAVE;
Restaurer le dump
shell> mysql -u <username> -p <dbname> < dbdump.db
Vérifier les données d'index
mysql> SHOW SLAVE STATUS;
Les champs Master_Log_File et Read_Master_Log_Pos doivent avoir les valeurs relevées précédemment.
Démarrer la réplication
mysql> START SLAVE;
A partir de maintenant, la réplication est active. Il est éventuellement possible de tester en faisant une modification sur la base de donnée du maître et de s'assurer qu'elle est répliquée sur l'esclave.