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. Linq to NHibernate入门示例

    Linq to NHibernate入门示例 NHibernate相关: 09-08-25连贯NHibernate正式发布1.0候选版 09-08-17NHibernate中一对一关联的延迟加载 09 ...

  2. INSTEAD OF触发器

    Oracle触发器5(INSTEAD OF触发器) 前提:对于简单的视图,可以直接进行DML操作,但是对于复杂视图,不允许直接执行DML操作,当视图符合以下任何一种情况都不可以: 具有集合操作符(UN ...

  3. PHP中将内容循环出来

    首先连接数据库: $myDate= @mysql_connect("localhost","root","") or die("数 ...

  4. C++中文件的操作

    #include <iostream> #include <fstream> using namespace std; int main() { char s[27],m[27 ...

  5. 线性回归,logistic回归和一般回归

    1 摘要 本报告是在学习斯坦福大学机器学习课程前四节加上配套的讲义后的总结与认识.前四节主要讲述了回归问题,回归属于有监督学习中的一种方法.该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数 ...

  6. 启动tomcat报host-manager does not exist or is not a readable directory异常

    新安装了一个tomcat6,安装完之后在webapps下面会有一些tomcat自带的项目(ROOT.manager.host-manager...) 把这些没用的项目删掉之后,启动tomcat 报如下 ...

  7. 使用 Python 开始游戏开发

    使用 Python 开始游戏开发 这是一篇由教程团队成员Julian Meyer发表的文章,一个12岁的python开发人员.你可以在Google+和Twitter上找到他. 你可曾想过如何创建视频游 ...

  8. MSSQL Rebuild(重建)索引

    MSSQL Rebuild(重建)索引 前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql: DECLARE @tab ...

  9. hibernate4 spring3.2 事务不提交分析

    最近在做微信项目,我搭建了一个基于servlet,spring3.2,hibernate4.1的框架.因为基于消息的servlet和基于业务层是分开做的,也就是先把业务层做了,再去将所有的请求转到业务 ...

  10. C#中 如何执行带GO的sql 语句

    C#中是不允许执行带GO的sql 语句的, 如何做呢? 思路就是将带GO的sql语句转化为分段执行, 但在同一事务内执行. 扩展方法是个很不错的主意, 但是尽量不要影响原来的cmd的一些东东, 如 c ...