首页 > 代码库 > MySQL XtraBackup 备份

MySQL XtraBackup 备份

备注:先安装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看,查看数据

  技术分享

增量备份恢复完成!

MySQL XtraBackup 备份