web-dev-qa-db-fra.com

MySQL rinçage des journaux en direct avec réplication

Je dois exécuter la requête lente et l'enregistrement de la requête non indexée pendant un certain temps sur une DB de production en direct avec réplication. Changer la valeur GLOBAL CONSTORT sonne comme une bonne solution. Cet article offre également une bonne lecture sur cela ..

Le problème est que je dois courir FLUSH LOGS; sur le maître/esclave. Et je ne sais pas comment cela affectera la réplication. Quelqu'un peut-il me dire l'impact de la course FLUSH LOGS; sur le maître en direct et sur l'esclave en direct.

Merci

2
Rajat Singhal

FLUSH LOGS; est sans danger pour faire à tout moment. Il fera pivoter les grumes de réplication; C'est inoffensif; La réplication sait comment passer au journal suivant. Le binlog est automatiquement tourné quand il dépasse max_binlog_size.

Avant 5,6, FLUSH LOGS n'a pas tourné le ralentisseur. Voir http://dev.mysql.com/doc/refman/5.6/fr/flush.html ou la page de votre version.

Je n'ai jamais fait reset master; Je ne l'inclurais pas. J'utilise expire_logs_days Pour purger automatiquement des binlogs. (Si un esclave a été hors ligne depuis plusieurs jours et je ne le remarque pas, je mérite le tracas.)

Je préfère log_queries_not_using_indexes = OFF; Sinon, il cloque le ralentisseur. (A Tiny La table sans index est souvent pas-un-problème.)

2
Rick James

en utilisant flush logs; alors généralement reset master enregistrera toutes les modifications non sauvegardées des journaux et des personnes abandonnées. Il y a une solution de contournement pour cela:

Si vous utilisez une réplication, vous ne devez pas supprimer d'anciens fichiers journaux binaires sur le maître avant d'être sûr qu'aucun esclave n'a toujours besoin de les utiliser. Par exemple, si vos esclaves ne fonctionnent jamais plus de trois jours de retard, une fois par jour, vous pouvez exécuter MySQLADMIN rinçage sur le maître, puis supprimer les journaux de plus de trois jours. Vous pouvez supprimer les fichiers manuellement, mais il est préférable d'utiliser les journaux binaires de purge, ce qui met également à jour en toute sécurité le fichier d'index de journal binaire pour vous (et qui peut prendre une argumentation de date). Voir la section 13.4.1.1, "Syntaxe des journaux binaires de purge".

Vous pouvez afficher le contenu des fichiers journaux binaires avec l'utilitaire MySQLBinLog. Cela peut être utile lorsque vous souhaitez reproduire des déclarations dans le journal pour une opération de récupération. Par exemple, vous pouvez mettre à jour un serveur MySQL à partir du journal binaire comme suit:

Shell> mysqlbinlog log_file | mysql -h server_name

cité à partir de http://dev.mysql.com/doc/refman/5.0/fr/binary-log.html

2
Ahmad Abuhasna