web-dev-qa-db-fra.com

Est-il possible de gagner la position précise d'une base de données mySQL en direct lors de la réussite de la sauvegarde complète

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

4
user2108258

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.

9
RolandoMySQLDBA