测试环境:
OS: rhel5
mysql : mysql-5.6.25-linux-glibc2.5-i686.tar.gz
xtrabackup: percona-xtrabackup-2.2.10-1.el5.i386.rpm
这里mysql的通用二进制包安装步骤省略~
mysql的数据目录建立在一个逻辑卷上 /mydata/data
mysql的数据备份目录 /backup
1.安装xtrabackup
# rpm -ivh percona-xtrabackup-2.2.10-1.el5.i386.rpm
2.建立原始数据
# 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 ###第二次增量备份
转载于:https://blog.51cto.com/luochen2015/1697750