Maison  >  Article  >  base de données  >  xtrabackup sauvegarde et restauration de la base de données MySQL

xtrabackup sauvegarde et restauration de la base de données MySQL

巴扎黑
巴扎黑original
2017-06-23 11:07:591305parcourir

La sauvegarde Mysqldump a certaines de ses propres caractéristiques (table de verrouillage, sauvegarde essentiellement des scripts d'insertion ou du texte, et ne prend pas en charge la sauvegarde différentielle), elle n'est donc pas adaptée aux situations qui nécessitent un temps réel élevé performances
Xtrabackup peut résoudre certains des problèmes ci-dessus de mysqldump et sera davantage utilisé dans les environnements de production.
Cet article teste brièvement l'opération de sauvegarde et de restauration de Xtrabackup sur la base de données MySQL.

Conformément au principe de déployer d'abord les fonctions puis d'entrer dans les détails, nous avons grossièrement mis en place une sauvegarde et une restauration sans entrer dans les détails.

Il existe de nombreux articles xtrabackup sur Internet. Parce que l'environnement est différent, certains doivent configurer les fichiers de configuration xtrabackup
Mais lorsque j'ai testé sous la version 2.4.7 de xtrabackup, je n'ai eu besoin d'aucun fichier de configuration. . Les détails peuvent être différents dans chaque version, alors faites attention à la version et à l'environnement lorsque vous faites référence aux documents de référence.

sauvegarde innobackupex

Les versions de xtrabackup et MySQL sont les suivantes

Sauvegarde complète

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock /data/backup

Remarque :
1.--defaults-file=/etc/my.cnf le fichier doit être au premier plan
2.--user=root --password=root, --use=** * Il doit y avoir un espace entre --password=***,

Comme indiqué dans la capture d'écran, la sauvegarde complète est terminée

Comme indiqué dans la capture d'écran, la sauvegarde complète créera une date (Aaaa-MM-jj_hh-mm-ss) La mémoire de la sauvegarde complète du fichier nommé
est en fait une copie du fichier de données de la base de données sauvegardée plus quelques informations générées lors de la sauvegarde,
Par exemple, xtrabackup_checkpoints contient des informations sur la sauvegarde complète en cours. Ces informations sont très importantes pour la sauvegarde différentielle.

Sauvegarde différentielle

La raison pour laquelle la sauvegarde différentielle peut faire la différence est qu'elle repose sur la sauvegarde complète une fois la sauvegarde complète effectuée sur la base. de la sauvegarde complète Sauvegarde différentielle.
La façon de déterminer où sauvegarder après une sauvegarde complète dépend du fichier xtrabackup_checkpoints après la sauvegarde complète.
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental -basedir=/data/backup/2017-06-22_13-40-29
Comme le montre la capture d'écran, la sauvegarde différentielle est terminée

 

Si en cours Lors de la sauvegarde différentielle, si le fichier de sauvegarde complète spécifié est erroné ou si le fichier de sauvegarde complète n'est pas spécifié, vous constaterez que xtrabackup vous indique que le fichier xtrabackup_checkpoints est introuvable.

restauration innobackupex

Phase de préparation

1 , restaurez la sauvegarde complète, c'est-à-dire le journal complet de l'application de sauvegarde (--apply-log)
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket =/var /lib/mysql/mysql.sock /data/backup/2017-06-22_13-40-29
 2, appliquez respectivement la sauvegarde incrémentielle à la sauvegarde complète
 innobackupex --defaults - file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock --incremental /data/backup/2017-06-22_13- 40 -29 --incremental-basedir=/data/backup/2017-06-22_13-41-48

S'il existe plusieurs sauvegardes différentielles, appliquez la différences séparément Sauvegarde vers une sauvegarde complète.

Phase de récupération

1. Après avoir appliqué toutes les sauvegardes différentielles à la sauvegarde complète, copiez la sauvegarde différentielle restaurée dans le répertoire de données d'origine
Par défaut, si il y a des fichiers dans le chemin des données, la copie échoue et les fichiers dans le chemin du fichier de données doivent être effacés.
innobackupex --copy-back /data/backup/2017-06-22_13-40-29
Comme indiqué dans la capture d'écran, complétez la copie

>

 2. Démarrez le service MySQL

Démarrez le service MySQL et constatez que le démarrage a échoué

 

Regardez le journal des erreurs (erreur de démarrage message), mysql5.7yum Le journal des erreurs par défaut installé se trouve dans /var/log/mysqld.log et ne défile pas par défaut, ce qui signifie que tous les messages d'erreur sont enregistrés dans ce fichier.

Une fois le fichier de données restauré, vous devez lire le chemin du fichier de données pour accorder les autorisations de lecture et d'écriture

Ici, autorisez directement le chemin du fichier de données 777, chmod -R 777 /var/ lib/mysql
Ensuite, démarrez le service mysql et il pourra démarrer normalement.

 

xtrabackupex vient de démarrer, laissant beaucoup de questions je les vérifierai une par une quand j'aurai le temps.

1. Comment sauvegarder et restaurer une seule base de données (table) ? Après tout, dans l'environnement réel, la fréquence et la méthode (plan de sauvegarde) de sauvegarde pour chaque base de données sont différentes ?

2. Comment utiliser la sauvegarde complète + la sauvegarde différentielle, puis la combiner avec des journaux binaires pour effectuer une restauration à un moment précis ?

3. Comment vérifier la validité du fichier de sauvegarde ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn