MySQL开源备份工具Xtrabackup备份部署
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex
1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表
2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的 同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢 复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。
Xtrabackup下载地址:
选择合适的版本,,我这里选择binary。
解压到/usr/src/目录,解压后目录名percona-xtrabackup-2.1.3,进入到bin目录,即可直接使用innobackupex命令
# pwd
/usr/src/percona-xtrabackup-2.1.3/bin
# ls -l
total 112396
-rwxr-xr-x 1 root root 110738 Jun 7 11:43 innobackupex
-rwxr-xr-x 1 root root 110738 Jun 7 11:43 innobackupex-1.5.1
-rwxr-xr-x 1 root root 2211237 Jun 7 11:43 xbcrypt
-rwxr-xr-x 1 root root 2285672 Jun 7 11:43 xbstream
-rwxr-xr-x 1 root root 13033745 Jun 7 11:43 xtrabackup
-rwxr-xr-x 1 root root 16333506 Jun 7 11:43 xtrabackup_55
-rwxr-xr-x 1 root root 80988093 Jun 7 11:43 xtrabackup_56
在开始使用的时候可能会报如下错误:
sh: xtrabackup_55: command not found
innobackupex: fatal error: no 'mysqld' group in MySQL options
解决办法xtrabackup_55复制到/usr/bin下即可。
# cp /usr/src/percona-xtrabackup-2.1.3/bin/xtrabackup_55 /usr/bin/
建立mysql备份用户:
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backupuser'@'localhost' identified by 'skEBfef5E2';
mysql> FLUSH PRIVILEGES;
备份脚本内容(每周一次全备,六次增量备份,保留2周的备份,并压缩):
#!/bin/bash
BEGINTIME=`date +"%Y-%m-%d %H:%M:%S"`
format_time=`date +"%Y-%m-%d_%H:%M:%S"`
week=`date +%w`
backupbin=/usr/src/percona-xtrabackup-2.1.3/bin
backdir=/data/databasebak/bak
file_cnf=/etc/my.cnf
user_name=backupuser
password="skEBfef5E2"
db="db1 db2 db3 db4"
out_log=$backdir/xtrabackup_log_$format_time
time_cost=$backdir/xtrabackup_time.txt
if [ -f "$backdir.lastlastlastweek.gz" ];then
rm -rf $backdir.lastlastweek.gz
mv $backdir.lastweek.gz $backdir.lastlastweek.gz
fi
if [ -d "$backdir/rec5" ];then
gzip -cr $backdir >$backdir.lastweek.gz
rm -rf $backdir
mkdir $backdir
fi
#full
if [ ! -d "$backdir/full" ];then
echo "#####start full backup at $BEGINTIME to directory full" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" $backdir/full 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec0" ];then
echo "#####start 0 incremental backup at $BEGINTIME to directory rec0" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/full $backdir/rec0 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec1" ];then
echo "#####start 1 incremental backup at $BEGINTIME to directory rec1" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/rec0 $backdir/rec1 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec2" ];then
echo "#####start 2 incremental backup at $BEGINTIME to directory rec2" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/rec1 $backdir/rec2 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec3" ];then
echo "#####start 3 incremental backup at $BEGINTIME to directory rec3" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/rec2 $backdir/rec3 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec4" ];then
echo "#####start 4 incremental backup at $BEGINTIME to directory rec4" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/rec3 $backdir/rec4 1> $out_log 2>&1
break;
elif [ ! -d "$backdir/rec5" ];then
echo "#####start 5 incremental backup at $BEGINTIME to directory rec5" >>$time_cost
$backupbin/innobackupex --defaults-file=$file_cnf --no-timestamp --user=$user_name --password=$password --slave-info --databases="$db" --incremental --incremental-basedir=$backdir/rec4 $backdir/rec5 1> $out_log 2>&1
break;
fi
ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`
begin_data=`date -d "$BEGINTIME" +%s`
end_data=`date -d "$ENDTIME" +%s`
spendtime=`expr $end_data - $begin_data`
echo "it takes $spendtime sec for packing the data directory" >>$time_cost
部署备份脚本;
# crontab -l
10 2 * * * /opt/cron/mysqldbbakup.sh
恢复:
#全备恢复:
innobackupex --apply-log --redo-only --defaults-file=$file_cnf --user=$user_name --password=$password $backdir/full
#增备恢复,修改增量备份目录,逐个apply-log,到第五天的增量rec4都是输出都显示innobackupex: completed OK!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sauvegarde incrémentielle MySQL utilisant Inside, il n'y a qu'un seul binaire. De plus, pour des raisons de compatibilité, innobackupex est utilisé comme lien logiciel de xtrabackup. Autrement dit, xtrabackup prend désormais en charge la sauvegarde de table non Innodb et Innobackupex sera supprimé dans le fichier. prochaine version (8.0 a été supprimée). Il est recommandé d'utiliser xtraba.

MySql est un système de gestion de base de données relationnelle couramment utilisé dans divers scénarios commerciaux et applicatifs. Pour les problèmes de sauvegarde MySQL, la méthode de sélection et d’exécution du plan de sauvegarde est cruciale. Dans cet article, nous présenterons diverses options de sauvegarde et comment créer et restaurer efficacement des sauvegardes MySQL. 1. Sélection du plan de sauvegarde Lors du processus de sélection d'un plan de sauvegarde MySQL, vous devez choisir un plan de sauvegarde qui vous convient en fonction du scénario commercial et de la situation réelle. Sauvegarde à froid La sauvegarde dite à froid consiste à compléter la base de données MySQL.

Comment utiliser les outils de sauvegarde et de récupération de données MySQL pour réaliser une reprise après sinistre. La sauvegarde et la récupération des données sont une partie très importante du processus de gestion de base de données. La sauvegarde de vos données protège votre base de données contre toute corruption accidentelle, panne matérielle ou autres événements catastrophiques. En tant que système de gestion de bases de données relationnelles populaire, MySQL fournit des outils puissants pour réaliser la sauvegarde et la récupération des données. Cet article explique comment utiliser les outils de sauvegarde et de récupération de données de MySQL pour réaliser une reprise après sinistre. Outil de sauvegarde de données MySQL-mysql

Dans la base de données MySQL, chaque table InnoDB correspond à un fichier .ibd, qui stocke les données et les index de la table. Par conséquent, pour la gestion et la maintenance de la base de données MySQL, la gestion des fichiers ibd est également particulièrement importante. Cet article expliquera comment gérer et maintenir efficacement les fichiers ibd dans une base de données MySQL et fournira des exemples de code spécifiques. 1. Vérifier et optimiser l'espace table Tout d'abord, nous pouvons vérifier l'utilisation de l'espace disque de la table à l'aide de l'instruction SQL suivante : SELECTTAB

MySQL est une base de données relationnelle populaire largement utilisée dans divers domaines. Cependant, comme d'autres applications, MySQL présente des risques tels que la corruption des données, les plantages et les attaques malveillantes. Par conséquent, la sauvegarde de vos données est cruciale. Les sauvegardes peuvent assurer la sécurité et une certaine forme de fonctionnalité « d'annulation » des données, réduisant, voire éliminant l'instabilité et les risques. Les types de sauvegarde les plus courants sont la sauvegarde complète et la sauvegarde incrémentielle. Toutefois, si vous avez besoin de sauvegardes fréquentes et en temps réel, les sauvegardes progressives constituent une meilleure approche. Une sauvegarde glissante est lorsqu'un

MySQL est actuellement l'un des systèmes de gestion de bases de données relationnelles les plus utilisés. Son efficacité et sa fiabilité en font le premier choix de nombreuses entreprises et développeurs. Mais pour diverses raisons, nous devons sauvegarder la base de données MySQL. Sauvegarder une base de données MySQL n'est pas une tâche facile car une fois la sauvegarde échouée, des données importantes peuvent être perdues. Par conséquent, afin de garantir l'intégrité et la récupérabilité des données, certaines mesures doivent être prises pour garantir une sauvegarde et une récupération efficaces de la base de données MySQL. Cet article présentera comment réaliser

Analyse de l'expérience du projet de réglage des performances de sauvegarde et de récupération de la base de données MySQL Dans l'exploitation et la maintenance quotidiennes, le travail de sauvegarde et de récupération de la base de données MySQL est indispensable. Cependant, face à une échelle de données de plusieurs téraoctets, voire pétaoctets, le temps et la consommation de ressources nécessaires à la sauvegarde et à la restauration deviennent souvent des facteurs clés limitant les performances des bases de données. Cet article partagera quelques expériences et techniques pratiques à travers un cas pratique de réglage des performances de sauvegarde et de restauration pour une grande entreprise Internet. 1. Sélection de solutions de sauvegarde En fonction des différents besoins de l'entreprise et de l'échelle des données, la sélection des solutions de sauvegarde doit également être prise en compte.

MySQL est actuellement l'un des systèmes de gestion de bases de données relationnelles les plus populaires et est largement utilisé dans les applications d'entreprise. Que vous soyez développeur ou administrateur de données, vous devez comprendre les connaissances de base de la sauvegarde et de la récupération MySQL. La sauvegarde et la restauration aident non seulement les entreprises à protéger leurs données, mais permettent également aux systèmes de réagir rapidement aux situations défavorables et de les restaurer autant que possible dans des conditions de fonctionnement normales. Cet article détaillera les étapes de sauvegarde et de récupération MySQL et fournira quelques bonnes pratiques pour aider les lecteurs à aller plus loin dans la protection de leurs bases de données MySQL.
