xtrabackup est un outil de sauvegarde MySQL fourni par percona. Il s'agit d'un outil de sauvegarde physique qui sauvegarde les données de la base de données en se connectant à la base de données. Pour le moteur de stockage innodb, il prend en charge la sauvegarde complète et la sauvegarde incrémentielle. Le moteur de stockage myisam prend uniquement en charge la sauvegarde incrémentielle. Parce que la sauvegarde incrémentielle d'innodb par xtrabackup est basée sur le LSN de l'espace table. Ce qu'on appelle le LSN signifie : l'espace table est divisé en plusieurs blocs de données. Chaque bloc de données a un numéro de séquence correspondant lorsque les données du bloc de données changent. , le numéro de séquence est mis à jour. La sauvegarde complète signifie la sauvegarde de tous les blocs de données, tandis que la sauvegarde incrémentielle effectue une sauvegarde basée sur le numéro de série du dernier bloc de données de la sauvegarde complète vers le dernier numéro de série du bloc de données. Comme myisam ne prend pas en charge les espaces table, les sauvegardes incrémentielles ne peuvent pas être effectuées.
Xtrabackup est un outil de sauvegarde de base de données MySQL fourni par percona. Selon l'introduction officielle, il s'agit du seul outil open source au monde capable d'effectuer une sauvegarde à chaud des bases de données innodb et xtradb.
Xtrabackup contient principalement deux outils :
xtrabackup : C'est un outil de sauvegarde à chaud des données dans les tables innodb et xtradb. Il ne peut pas sauvegarder d'autres types de tables, ni les sauvegarder. structure des tables de données ;
innobackupex : c'est un script Perl qui encapsule xtrabackup. Il peut sauvegarder et restaurer les tables MyISAM et les structures de tables de données.
Les données sauvegardées par xtrabackup comprennent :
espace table
Fichiers de données
Journal binaire
Journal des transactions
...
xtrabackup Avant d'effectuer la récupération de données, vous devez faire attention aux points suivants :
S'il existe une sauvegarde incrémentielle, vous devez fusionner la sauvegarde incrémentielle et la sauvegarde complète avant de restaurer
Étapes expérimentales
mysql -uroot < hellodb.sql
pour voir s'il a été activé. Utilisez la commande show binaire logs;Vous pouvez voir. quel journal binaire est actuellement utilisé ;
innobackupex -u root /data/backup
innobackupex --apply-log 2017-07-13_21-02-07/ #首先进行事务日志的提交和回滚 innobackupex --copy-back 2017-07-13_21-02-07/ #进行数据恢复,会自动把数据恢复到mysql的数据目录下
Une fois l'opération de récupération des données terminée, une sauvegarde complète des données doit être effectuée pour garantir la sécurité des données
pour la base de données Insérez quelques nouvelles informations, puis effectuez une sauvegarde incrémentielle de la base de données
Utilisez la commande suivante pour effectuer une sauvegarde incrémentielle de la base de données ; , il sera toujours généré dans le répertoire /data/backup. Créez un nouveau dossier nommé d'après l'heure : innobackupex -u root -p 1234567a --incremental --incremental-basedir=/data/backup/2017-07-13_21-07-23/ /data/backup/
Ensuite, arrêtez le service de base de données, supprimez toutes les données qu'il contient. le répertoire de la base de données et effectuer les opérations de récupération des données. Les étapes sont les suivantes : innobackupex --apply-log --redo-only 2017-07-13_22-16-19/ #进行全量备份的事务提交,但是不回滚未提交事务,因为未提交事务可能在下次的增量备份中提交 innobackupex --apply-log --redo-only 2017-07-13_22-16-19/ --incremental-dir=2017-07-13_22-18-34/ #进行增量备份和全备份的合成已经事务提交工作 innobackupex --apply-log 2017-07-13_22-16-19/ #对于全备份也没有完成的事务进行回滚操作 innobackupex --copy-back 2017-07-13_22-16-19/ #此时采用全备份即可恢复数据,不再需要增量备份,因为已经进行了备份的合成操作
Vous devez également modifier le propriétaire et le groupe des données restaurées, puis Connectez-vous à la base de données pour voir les données complètes. À ce stade, la démonstration expérimentale est terminée.
Remarque :
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!