Je veux que le maître arrête de répliquer les données sur l'esclave. Je sais que je peux faire ça sur l'esclave avec STOP SLAVE;
, mais je me demande s'il y a moyen de le faire dans le master.
Une solution possible pourrait être de modifier le server_id
à 0, mais dans ce cas, je devrai redémarrer mysql dans le maître pour que les modifications prennent effet.
Ce que je recherche, c'est une déclaration comme STOP MASTER;
.
Il n'existe pas de commande STOP MASTER;
Ni de mécanisme manuel du maître pour arrêter la réplication. Vous devez aller sur chaque esclave et exécuter les éléments suivants:
STOP SLAVE;
(Tue le fil IO et le fil SQL)STOP SLAVE IO_THREAD;
(Tue le fil IO uniquement)L'exécution de l'un de ces éléments vous permettra d'obtenir les éléments suivants:
master.info
Le fil IO est ce qui communique avec le maître. Tuer le thread IO du côté maître à l'aide de la commande KILL
annulerait le thread IO sur chaque esclave. Cela pourrait corrompre l'enregistrement propre des coordonnées de réplication.
La façon la plus simple de procéder en ligne serait de révoquer tout REPLICATION SLAVE
privilèges sur le maître pour tous les utilisateurs qui le possèdent.
Cela offre l'avantage supplémentaire de vous permettre d'être sélectif sur les esclaves que vous supprimez.
Une fois cela fait, recherchez les sessions de réplication existantes avec SHOW PROCESSLIST
et tuez-les avec la commande KILL
(ceux-ci peuvent tomber d'eux-mêmes après avoir révoqué les privilèges, mais je soupçonne que ce n'est pas le cas).
Vous devez avoir à l'esprit que, en utilisant cette approche, la réplication ne s'arrêtera pas complètement sur l'esclave, ce qui se passera est que le SLAVE IO_THREAD
ne pourra pas obtenir de nouvelles instructions (requêtes) du maître, mais si vous avez finalement des requêtes que vous recevez déjà du maître (celles-ci sont enregistrées dans votre journal de relais) mais ne sont pas encore exécutées (vous pouvez vérifier si vous avoir des secondes derrière master pour voir si c'est le cas), cela n'empêchera pas ces requêtes de ne pas s'exécuter.