mysql:5.6.29
xtrabackup:2.2.10
mysql数据目录:/data/mysql
mysql备份目录:/data/dbbak/ #确保有足够的磁盘空间

官方文档:https://www.percona.com/doc/percona-xtrabackup/2.2/innobackupex/incremental_backups_innobackupex.html

1、安装依赖

yum -y install libaio perl-Time-HiRes perl-DBD-MySQL perl-IO-Socket-SSL rsync.x86_64

2、安装xtrabackup

rpm -ivh percona-xtrabackup-2.2.10-1.el6.x86_64.rpm

3、在数据库创建备份账号

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT,Process ON *.* TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;

4、初始化验证数据

CREATE DATABASE if not EXISTS test /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use test;
drop table if EXISTS myisam_table;
CREATE TABLE myisam_table (
id int NOT NULL AUTO_INCREMENT,
column1 varchar(30),
column2 varchar(30),
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
drop table if EXISTS innodb_table;
CREATE TABLE innodb_table (
id int NOT NULL AUTO_INCREMENT,
column1 varchar(30),
column2 varchar(30),
PRIMARY KEY (`id`)
) ENGINE=INNODB;
insert into myisam_table values (null,'完整备份','完整备份');
insert into innodb_table values (null,'完整备份','完整备份');

5、完整备份

innobackupex --user=bkpuser  --password=s3cret  /data/dbbak/full  --no-timestamp --defaults-file=/etc/my.cnf 

第一次增量备份

 insert into myisam_table values (null,'增量备份1','增量备份1');
 insert into innodb_table values (null,'增量备份1','增量备份1');

innobackupex --user=bkpuser  --password=s3cret /data/dbbak/incre1 --incremental --incremental-basedir=/data/dbbak/full --no-timestamp --defaults-file=/etc/my.cnf 

第二次增量备份

insert into myisam_table values (null,'增量备份2','增量备份2');
insert into innodb_table values (null,'增量备份2','增量备份2'); innobackupex --user=bkpuser --password=s3cret /data/dbbak/incre2 --incremental --incremental-basedir=/data/dbbak/incre1 --no-timestamp --defaults-file=/etc/my.cnf

6、还原

合并所有增量备份至完整备份

innobackupex --apply-log  --redo-only /data/dbbak/full
innobackupex --apply-log --redo-only /data/dbbak/full --incremental-dir=/data/dbbak/incre1
innobackupex --apply-log /data/dbbak/full --incremental-dir=/data/dbbak/incre2 最后一次增量备份,不需要添加--redo-only
Note
--redo-only should be used when merging all incrementals except the last one. That’s why the previous line doesn’t contain the --redo-only option. Even if the --redo-only was used on the last step, backup would still be consistent but in that case server would perform the rollback phase. Once you merge the base with all the increments, you can prepare it to roll back the uncommitted transactions
innobackupex --apply-log /data/dbbak/full /etc/init.d/mysql.server stop
mv /data/mysql /data/mysql_bak
innobackupex --copy-back /data/dbbak/full
chown mysql:mysql /data/mysql -R
/etc/init.d/mysql.server start

7、验证数据

select * from test.myisam_table;
select * from test.innodb_table;

XtraBackup增量备份的更多相关文章

  1. xtrabackup增量备份mysql +MHA

    http://blog.csdn.net/yanggd1987/article/category/2214421 https://www.centos.bz/2013/09/innobackupex- ...

  2. innobackupex 备份 Xtrabackup 增量备份

    Mysql增量备份Xtrabackup中包含两个工具:•        xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表).•        i ...

  3. Xtrabackup 增量备份 和 增量还原

    目录 测试数据准备 进行全量备份 第一次增量插入一条数据 进行第一次增量备份 注意 第二次增量插入一条数据 进行第二次增量备份 注意 查看xtrabackup_binlog_info中的binlog位 ...

  4. xtrabackup增量备份MySQL-5.7操作说明

    下载工具 本方法利用xtrabackup二进制包,版本是2.4.26 # 从官网下载二进制包:wget https://downloads.percona.com/downloads/Percona- ...

  5. xtrabackup 增量备份(InnoDB)

    mysql> select * from users; +----+-----------+----------+--------------+ | id | name | password | ...

  6. mysql xtrabackup增量备份

    mysql 增量备份策略 周一全备,其他增量备份,根据业务需要,设定保留日期,如保留一月. 增量备份步骤; 1 创建全备 2 根据全备目录,创建增量备份 3 第二次增量备份根据第一次增量备份目录,依次 ...

  7. 16、xtrabackup 增量备份及恢复

    备份命令如下 备份命令如下 全量备份 #  innobackupex -p123123 /backup # ls /backup 2017-04-08_13-36-11 增量备份或差量备份 # inn ...

  8. XtraBackup全备与增量备份

    一.XtraBackup安装 下载地址:http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安装步骤: ===== ...

  9. xtrabackup实现全量备份和增量备份

    mysql增量和完全备份innobackupex2.1.9版本1 yum安装: 官网地址:https://www.percona.com/doc/percona-xtrabackup/LATEST/i ...

随机推荐

  1. JavaScript中的execCommand()命令详解及实例展示

    execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令.处理Html数据时常用如下格式:document.execCommand(sCommand[,交互方式, 动态参数]) ,其 ...

  2. Javascript多线程引擎(九)

    Javascript多线程引擎(九)--垃圾回收 垃圾回收这个话题对Programer来说是非常老旧的话题, 从手动的malloc/free 到半自动的 引用计数 再到全自动的 mark-sweep ...

  3. 刚下载的几个开源的Android项目

    Android-Universal-Image-Loader Android上最让人头疼的莫过于从网络获取图片.显示.回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你. Universa ...

  4. C#的Task和Java的Future

    C#的Task和Java的Future 自从项目中语言换成Java后就很久没有看C#了,但说实话我是身在曹营心在汉啊.早就知道.NET4.5新增了async和await但一直没有用过,今天看到这篇文章 ...

  5. SZU:G32 Mass fraction

    Judge Info Memory Limit: 32768KB Case Time Limit: 5000MS Time Limit: 5000MS Judger: Float Numbers (1 ...

  6. Dogs[HDU2822]

    Dogs Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...

  7. iOS: JS和Native交互的两种方法

    背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)stringByEvaluatingJavaScriptFromString:(NS ...

  8. Area 使用

    [ASP.NET MVC 小牛之路]08 - Area 使用 ASP.NET MVC允许使用 Area(区域)来组织Web应用程序,每个Area代表应用程序的不同功能模块.这对于大的工程非常有用,Ar ...

  9. js读取 存入cookie

    <script language=javascript> //获得coolie 的值 function cookie(name){ var cookieArray=document.coo ...

  10. 实现pow(int x, int y),即x的y次方 ; 异或交换两个数;

    问题1:实现pow(int x, int y) ,即x的y次方 x的y次方就是有y个x连续乘机,代码如下: #include <stdio.h> #include <stdlib.h ...