Je tente de configurer une réplication pour une grande (120 Go) de base de données MySQL et j'ai foiré.
Je fermai le maître, copié les fichiers de données et redémarré le maître. Maintenant, j'ai mis en place l'esclave et j'ai commencé, et je me rends compte que j'ai négligé d'obtenir le MASTER_LOG_FILE
et MASTER_LOG_POS
valeurs nécessaires à la réplication de configuration.
J'ai toujours une copie intacte des fichiers de données. Y a-t-il un moyen de déterminer MASTER_LOG_FILE
et MASTER_LOG_POS
de ces fichiers?
question connexe :
MASTER_LOG_POS
à un point précédent dans le temps?éditer
J'ai enquêté sur la commande mysqlbinlog
et découvrit ce qui ressemble aux informations correctes en exécutant:
mysqlbinlog --to-last-log --start-datetime='2015-06-21 20:05:00'
mysql-bin.000006 | grep end_log_pos
La sortie ressemble à quelque chose comme ceci:
... a whole bunch more lines ...
#150621 20:10:21 server id 1 end_log_pos 720159843 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:21 server id 1 end_log_pos 720161877 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:21 server id 1 end_log_pos 720162762 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:22 server id 1 end_log_pos 720164796 Query thread_id=901489 exec_time=0 error_code=0
#150621 20:10:22 server id 1 end_log_pos 720164815 Stop
Je suppose que je devrais utiliser l'une de ces deux dernières positions, mais je ne suis pas sûr.
Espérons que vous n'avez pas encore commencé MySQLD sur l'esclave.
Il arrive simplement qu'une position binlog est également la taille de la binlog à la fin de chaque événement binlog. Dans votre cas, vous pouvez utiliser le dernier binlog que les vues esclaves, que je peux assumer est mysql-bin.000006
. Obtenez le fichier de fichiers et utilisez-le comme position.
Par conséquent, sur l'esclave que vous couriez
STOP SLAVE;
CHANGE MASTER TO
MASTER_Host='...',
MASTER_PORT=3306,
MASTER_USER='repluser',
MASTER_PASSWORD='replpassword',
MASTER_LOG_FILE='mysql-bin.00006',
MASTER_LOG_POS=720164815;
START SLAVE;
et cela devrait le faire !!!
J'ai discuté de la position de Binlog étant le fichier ci-dessus avant
Nov 30, 2012
: Comment pouvez-vous surveiller si les fichiers Binlog MySQL sont corrompus?Oct 20, 2011
: Comment gérer le maître My SQL DB à la réplication principale lorsqu'il y avait une panne d'espace disqueVous avez également demandé
que se passe-t-il si vous définissez le Master_Log_Pos sur un point précédent à temps?
Oui, il rejouera ces événements Binlog et causera des problèmes.