La replication permet d'avoir toutes les actions effectuées sur une base maître repliquée sur une base esclave d'une autre machine.


Pour limiter le nombre et donc l'espace occupé par les logs sur l'esclave, on peut le configurer avec /etc/mysql/my.cnf :
[mysqld]
relay-log-purge=1               # Virer les logs ne servant plus a rien

relay-log-space-limit=104857600 # Limitation des tailles de logs de relay total
                                # (min 2 fois la valeur de max-relay-log-size)

max-relay-log-size=30485760     # Limitation de la taille d'un log de relay

Pour vérifier la replication :
mysql> show slave status\G
Vérifier la première ligne Slave_IO_State :
- Si elle est vide, la replication ne foncitonne pas
-
Waiting for the slave SQL thread to free enough relay log space
: demande de nettoyage par MySQL des anciens logs qui restent
-
Queueing master event to the relay log
: Transfert de données en cours
-
Waiting for master to send event
: Attente de données depuis le maître.

En cas de panne de la replication pour nettoyer l'esclave :
/etc/init.d/mysql stop
rm /var/lib/mysql/master.info /var/lib/mysql/relay-log.info
(regarder aussi rm /var/lib/mysql/relay-log.info /var/lib/mysql/master.info)
/etc/init.d/mysql start


Si l'esclave reste bloqué sur
Waiting for the slave SQL thread to free enough relay log space
, il est souhaitable de vérifier l'écart entre le maître et l'esclave : mysql -u root -e "SHOW SLAVE STATUS\G" | grep Seconds_Behind_Master.
Si cette valeur diminue, l'esclave est en train de vouloir récupérer du retard sur le maître. En cas de trop grand écart, (et que l'on peut perdre les données non enregistrées dans l'esclave), il est peut-être souhaitable de supprimer les vieux logs du maître.
On peut voir la liste de tous les logs sur le maître avec SHOW BINARY LOGS;. Si il y en a trop a récupérer par l'esclave, on peut supprimer des logs en executant sur le maître PURGE MASTER LOGS BEFORE '2006-08-09 16:30:00';. Une fois nettoyé l'esclave avec les commandes, l'erreur est supprimée... mais des données sont perdues.

Quand tout est planté, la commande RESET SLAVE;, tapée sur l'esclave, permet de redémarrer toute la procédure...
Des cookies d'analyse d'audience sont utilisés sur ce site