备注:先安装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

查看 wKioL1j2CWLz3Zg-AAAN6BD8dDo967.png-wh_50

wKiom1j2CZyxingGAAAyfyAvuM4785.png-wh_50

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/

  wKiom1j2CjqQIUnPAABTGRg1Bz8875.png-wh_50

   备份的时候除了错误,原因是没有找到socket文件。

  wKioL1j2CrKxP2tAAADLB-B6w7g698.png-wh_50

  wKioL1j2CunibE3zAADRlopa2Do385.png-wh_50

 备份完成,成功!

 备份的文件:wKioL1j2C2uxc1liAAAPpASHvXs691.png-wh_50

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/

   wKiom1j2DDOTLqMvAADrlf-pH4U461.png-wh_50

还原成功。重启MySQL

二。增量备份与恢复

  1.进行全量备份,但是先不用apply-log

   wKioL1j2FTOhaDPHAAA_e9gpWvg038.png-wh_50

   wKioL1j2FV3giVfhAAA3P7xg-Tk882.png-wh_50 

 2,在全量备份的基础上进行增量备份

   先添加一条记录

  wKioL1j2FbfC4NFRAAA1q0UVQMU378.png-wh_50

 开始第一份增量备份 innobackupex --user=bkuser --password=123456 --socket=/tmp/mysql.sock --incremental  /data/backup/db-incre-20170418-1 --incremental-basedir=/data/backup/20170418full

  wKiom1j2GRTxwa15AAB-a-_vie4338.png-wh_50 

备份成功

再次插入一条数据,进行第二次增量备份

  wKioL1j2GVngRMIBAAAhtYal0Xk556.png-wh_50

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

  wKiom1j2GwrhqWb6AAB7q7lQRmk383.png-wh_50

第二个增量备份完毕

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文件夹并授权

 wKioL1j2HrODFhExAABsv2-UPpY067.png-wh_50

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看,查看数据

  wKiom1j2JDrz6LAqAABqk_Hd63Q561.png-wh_50

增量备份恢复完成!