J'ai une base de données de production que j'exécute habituellement Fullbackups une fois par semaine. J'ai des journaux de bacs allumés pour des sauvegardes incrémentielles.
Le serveur de production se trouve sur la côte ouest pendant que les heures de bureau sont sur la côte est.
Lorsque j'effectue le support complet, je demande le maître pour le journal et la position. Je mets ces valeurs dans le nom du fichier zip que je compresse les bases de données à.
J'ai des difficultés à utiliser MySQLBinlog pour créer un fichier SQL incrémentiel d'une certaine position que je connais la sauvegarde terminée.
Courirait Show Master Status
Ensuite, puis en cours d'exécution mysqldump --flush-logs --single-transaction...
suffit à obtenir des informations précises afin de restaurer.
Je sais que la configuration idéale est de sauvegarder une base de données d'esclaves puisque le verrouillage ne blesse pas l'environnement de production, mais je n'ai pas fait le commutateur.
Est-ce que je ne reçois pas les résultats souhaitables parce que je ne ferme pas toutes les tables?
Merci d'avance
ÉDITER
J'ai réalisé avec l'aide de Rolandomysqldba que je ne faisais pas de pointe vers le fichier binlog approprié. J'étais à la place de pointer vers l'ensemble du répertoire binlog/bin-log.[0-9]* > sql.txt
. Donc, avec juste la position, je frappais des grumes qui ont commencé beaucoup plus tôt que désiré. J'ai donc changé mon script pour tirer le fichier binlog approprié ainsi que la position et qui fonctionnait comme un charme.
Merci
Lorsque vous utilisez MySqldump, vous pouvez obtenir les coordonnées des journaux binaires de la sauvegarde au moment de l'heure du début de MySqldump.
Il suffit d'ajouter l'option - option de données principales
mysqldump --master-data=2 --flush-logs --single-transaction...
En utilisant --master-data=2
enregistrera le nom de fichier de journal binaire et la position sous la forme d'un CHANGE MASTER TO
commande. Il est enregistré comme un commentaire.
En utilisant --master-data=1
enregistrera également le nom de fichier de journal binaire et la position sous la forme d'un CHANGE MASTER TO
commande. Il n'est pas enregistré comme un commentaire, mais comme une commande qui sera exécutée lorsque vous rechargez le mysqldump.
Dans les deux cas, vous pouvez toujours trouver que CHANGE MASTER TO
Commande à la ligne 23 du décharge. Je l'ai mentionné précédemment dans mon ancien post-post mysql exécu_master_log_pos qualité supérieure à read_master_log_pos Sous the attente "mais attendez ..."
Pour récupérer cette ligne d'un fichier mysqldump nommé myfullbackup.sql
, il suffit de courir
head -23 myfullbackup.sql | tail -1 > MasterLogFilePos.sql
et le CHANGE MASTER TO
commande sera dedans
Si vous exécutez le mysqldump avec
mysqldump --master-data=2 --flush-logs --single-transaction...
le maître continuera à permettre de lire et écrit à toutes les tables innovées.