备注:先安装XtraBackup
下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/
此处我的版本是:percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm
本地安装: yum localinstall percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm
查看
OK,安装完成
一.XtraBackup全备及恢复
1.创建一个备份用户,并授权
create user ‘bkuser‘@‘localhost‘ identified by ‘123456‘;
grant reload,lock tables,process,replication client on *.* to ‘bkuser‘@‘localhost‘;
flush privileges;
2.开始备份
innobackupex --user=bkuser--password=123456 /data/backup/
备份的时候除了错误,原因是没有找到socket文件。
备份完成,成功!
备份的文件:
3.备份恢复
假定我们把之前的data文件删掉,直接还原(先停掉MySQL服务)
先 innobackupex --apply-log /data/backup/2017-04-18_20-35-51/
再 innobackupex --copy-back /data/backup/2017-04-18_20-35-51/
还原成功。重启MySQL
二。增量备份与恢复
1.进行全量备份,但是先不用apply-log
2,在全量备份的基础上进行增量备份
先添加一条记录
开始第一份增量备份 innobackupex --user=bkuser --password=123456 --socket=/tmp/mysql.sock --incremental /data/backup/db-incre-20170418-1 --incremental-basedir=/data/backup/20170418full
备份成功
再次插入一条数据,进行第二次增量备份
innobackupex --user=bkuser --password=123456 --socket=/tmp/mysql.sock --no-timestamp --incremental /data/backup/db-incre-20170418-2 --incremental-basedir=/data/backup/db-incre-20170418-1
第二个增量备份完毕
3.恢复备份数据
1)第一次先做全量恢复+第一次的增量恢复(先将全备和第一次增量备份 备份下)
innobackupex --apply-log --redo-only /data/backup/20170418full
innobackupex --apply-log --redo-only /data/backup/20170418full --incremental-dir=/data/backup/db-incre-20170418-1
innobackupex --apply-log /data/backup/20170418full
理论上恢复出来的数据是8条
innobackupex --copy-back /data/backup/20170418full
同理,先停掉MySQL并删掉之前的data,创建data文件夹并授权
2)恢复全备和两次增量备份
innobackupex --apply-log --redo-only /data/backup/20170418full
innobackupex --apply-log --redo-only /data/backup/20170418full --incremental-dir=/data/backup/db-incre-20170418-1
innobackupex --apply-log --redo-only /data/backup/20170418full --incremental-dir=/data/backup/db-incre-20170418-2
innobackupex --apply-log /data/backup/20170418full
关掉MySQL,删掉data
恢复数据 innobackupex --copy-back /data/backup/20170418full
重启MySQL看,查看数据
增量备份恢复完成!