安装Xtrabackup(mysql默认5.5以上 数据引擎为INNODB才可以使用)
官网下载rpm安装包:地址:https://www.percona.com/downloads/XtraBackup/LATEST/
首先安装需要的依赖包:
#yum install -y rsync perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
#rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm
全备份:
#innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf (--database=test) /backup/
//以上的--database选项是指定备份的数据库,如果全备的话,则忽略此选项。
增量备份测试:
例:假设在数据库中建立一个新的数据库db1;
mysql>create database db1;
mysql>use db1;
mysql>create table stdu(id int,name char(20),age int);
mysql>insert into stdu(id,name,age) values(1,'zhangsan',20);
#innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf (--database=test) /backup/
#ls /backup/
drwxr-xr-x 3 root root 4096 Aug 27 11:46 2015-08-27_11-31-44 //以日期命名的备份文件夹
增量备份1:
mysql>insert into stdu(id,name,age) values(2,'lishi',30);
#--incremental:增量备份的文件夹
#--incremental-dir:针对哪个做增量备份
#innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --incremental /backup/ --incremental-dir /backup/2015-08-27_11-31-44/
#ls /backup
drwxr-xr-x 3 root root 4096 Aug 27 11:46 2015-08-27_11-36-37
增量备份2:插入新数据
mysql>insert into stdu(id,name,age) values(3,'wangwu',35);
#innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --incremental /backup/ --incremental-dir /backup/2015-08-27_11-36-37/
#ls /backup
drwxr-xr-x 3 root root 4096 Aug 27 11:46 2015-08-27_11-40-03
测试恢复:
假设数据库db1被删除;
mysql>drop database db1;
#innobackupex --apply-log --redo-only /backup/2015-08-27_11-31-44 /
//检查全备的数据是否正常
#du -sh /backup/*
21M /backup/2015-08-27_11-31-44 //全备的数据容量较大
2.3M /backup/2015-08-27_11-36-37 //增备的数据库较小
2.3M /backup/2015-08-27_11-40-03
准备完整的全备,首先将2次增量备份恢复到全备中:
#innobackupex --database=db1 --apply-log --redo-only --incremental /backup/2015-08-27_11-31-44/ --incremental-dir=/backup/2015-08-27_11-36-37/
#innobackupex --database=db1 --apply-log --redo-only --incremental /backup/2015-08-27_11-31-44/ --incremental-dir=/backup/2015-08-27_11-40-03/
准备恢复:
#rm -rf /usr/local/mysql/data/* //删除mysql数据库目录下面文件
首先关闭数据库。
#service mysqld stop
#innobackupex --defaults-file=/etc/my.cnf --copy-back /backup/2015-08-27_11-31-44/
#chown -R mysql:mysql /backup //设置所有者和所属组为mysql
#service mysqld start //启动数据库
本文由 gjc159357 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 26, 2016 at 01:24 pm