测试环境:
mysql
OS: rhel5linux
mysql : mysql-5.6.25-linux-glibc2.5-i686.tar.gzsql
xtrabackup: percona-xtrabackup-2.2.10-1.el5.i386.rpm数据库
这里mysql的通用二进制包安装步骤省略~app
mysql的数据目录创建在一个逻辑卷上 /mydata/data
ide
mysql的数据备份目录 /backup测试
1.安装xtrabackup
spa
# rpm -ivh percona-xtrabackup-2.2.10-1.el5.i386.rpmrem
2.创建原始数据it
# mysql
mysql> create database student;
mysql> use student;
mysql> create table user(id tinyint primary key auto_increment not null,name char(32) not null default '');
mysql> desc user;
mysql> insert into user(name) values ('luochen'),('redhat');
mysql> select * from user; ###验证数据是否插入成功
3.彻底备份
# innobackupex --user=root /backup ##这里没有设定root密码
# cd /backup/ ###查看是否有一个已当前时间生成的目录
PS: 若是不进行增量备份想还原彻底备份使用下面命令
# innobackupex --apply-log /backup/2015-09-24_10-27-04
# innobackupex --copy-back /backup/2015-09-24_10-27-04
4.修改数据库表中的数据(模以真实的状况)
# mysql
mysql> insert into user(name) values ('zuowei'),('zhangsan');
mysql> select * from user;
5.进行第一次增量备份(在彻底备份的基础上)
# innobackupex --incremental /backup --increment-basedir=/backup/2015-09-24_10-27-04
PS: 2015-09-24_10-27-04 为彻底备份生成的目录
6.再次修改表中数据
# mysql
mysql> use student;
mysql> delete from user where id in(2,3);
mysql> insert into user(name) values ('endtime');
mysql> select * from user;
7.进行第二次增量备份
# innobackupex --incremental /backup --incremental-basedir=/backup/2015-09-24_10-28-43
PS: 2015-09-24_10-28-43 为第一次增量备份生成的目录
8.模以数据被破坏
# service mysqld stop
# rm -rf /mydata/data/*
9.准备从彻底备份和增量备份中恢复数据
# innobackupex --apply-log --redo-only /backup/2015-09-24_10-27-04
# innobackupex --apply-log --redo-only /backup/2015-09-24_10-27-04 --incremental-dir=/backup/2015-09-24_10-28-43
# innobackupex --apply-log --redo-only /backup/2015-09-24_10-27-04 --incremental-dir=/backup/2015-09-24_10-30-37
10.恢复全部数据
# innobackupex --copy-back /backup/2015-09-24_10-27-04
11.改变数据目录文件的所属主组
# cd /mydata/data
# chown -R mysql.mysql ./*
12.验证数据是否恢复成功
# mysql
mysql> use student;
mysql> select * from user;
PS:
2015-09-24_10-27-04 ###彻底备份
2015-09-24_10-28-43 ###第一次增量备份
2015-09-24_10-30-37 ###第二次增量备份