la réplication mysql ignorer la déclaration. est-il possible?
Il y a un système à base de lignes de réplication.
Hier, j'ai exécuté une lourde déclaration sur mon maître accidentellement et trouvé mes esclaves loin derrière le maître. J'ai interrompu la requête de maître, mais il était encore en cours d'exécution sur les esclaves.
J'ai donc eu mes esclaves 15 heures derrière maître.
J'ai déjà essayé de l'étape à plus d'un poste par la réinitialisation de l'esclave et de l'augmentation de MASTER_LOG_POS, mais avec pas de chance: la position n'a pas été trouvé, parce que le relais du journal n'était pas lu plus loin que lourd requête de l'événement.
Read_Master_Log_Pos == Exec_Master_Log_Pos
- Est-il possible d'ignorer la lourde requête?
(je n'ai pas de soins sur les données qui doit être changé par requête) - Est-il un moyen de tuer une requête sur un esclave prises de relais journal?
- Est-il un moyen de rouler les esclaves de retour en position 1, retirez le
événement de maître bin-journaux et de reprendre la réplication?
OriginalL'auteur Volodymyr Linevych | 2013-07-17
Vous devez vous connecter pour publier un commentaire.
D'explorer le binaire journaux sur le maître pour trouver l'instruction SQL qui est à l'origine du problème, à l'aide de la suite sur le maître:
Puis définissez l'esclave de synchroniser seulement jusqu'à l'instruction avant que:
Lorsque vous souhaitez effectuer sur la réplication après la mauvaise déclaration (attention, cela peut être dangereux si l'énoncé a changé de données), vous pouvez dire l'esclave de continuer à partir d'un point spécifique dans les maîtres du journal. Pour ce faire, obtenir la position à l'aide de la première commande sur le maître, puis définissez l'esclave aller:
OriginalL'auteur A.Badger
Essayez les opérations suivantes sur l'esclave:
Cela va arrêter les threads esclaves et ignore le prochain événement à partir de le maître. Ce que vous utilisez normalement lorsque vous avez des problèmes avec les déclarations de sauter sur eux.
Également lire la partie suivante de la base de données mysql docs: set-global-sql-slave-skip-contre
OriginalL'auteur Flo Doe
Pour ceux sur Amazon RDS pour MySQL, vous pouvez ignorer une erreur à la fois sur l'esclave:
Pas besoin d'arrêter la réplication avant l'exécution de cette.
OriginalL'auteur Sean Fahey
J'ai trouvé le démarrage de l'io_thread première
et vérifier que le relais des journaux avec la commande
Cela m'a sauvé beaucoup de temps.
OriginalL'auteur Rodo
Vous pouvez définir un saut de compteur comme suit:
Pour voir la processlist:
Début de l'esclave de position spécifique:
Ref: http://dev.mysql.com/doc/refman/5.0/en/start-slave.html
OriginalL'auteur Teun Ouwehand