mysql全备增备_Xtrabackup实现mysql数据库全备加增备

安装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

你可能感兴趣的:(mysql全备增备)