增量备份之所以能工作是因为每个innodb的page都包含日志序列号(LSN)。LSN是整个数据库的版本号。

增量备份会拷贝那些LSN比备份开始时新的页。有两种算法用来计算查找这些页:第一种,支持所有版本类型,从数据页中直接读取页的LSN号;第二种,只是支持percona server,可以跟踪所有改变的页,也改变跟踪信息会写入一个单独的、压缩的bitmap文件。xtrabackup使用这个文件去读取需要备份的页,从而降低了读请求。也可以使用--incremental-force-scan来强制读取所有的页,即使有bitmap文件存在。

增量备份并不需要将数据文件与之前的备份文件相比较。事实上,即使没有之前的备份,也可以使用--incremental-lsn直接进行增量备份。增量备份只是比较lsn。

备份的时候,xtrabackup会向--target_dir目录写入一个文件:xtrabackup_checkpoints。这个文件包含一行带有to_lsn的内容,即数据库备份后的lsn。
比如:

$ more xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 1626007
last_lsn = 1626007
compact = 0
recover_binlog_info = 1

  

执行增量备份的过程:

1.创建全备
$ xtrabackup --backup --target-dir=/data/backups/base 2.执行增量备份
$ xtrabackup --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base
在/data/backups/inc1下包含delta文件 3.再次增量备份
$ xtrabackup --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1

 

如何对增量备份做prepare

对增量备份做prepare步骤,和全备不同。
对全被做prepare,为了确保数据一致性,要完成两种操作:事务前滚、事务回滚。
对增量备份做prepare,必须略过对未提交的事务的回滚,因为未提交的事务在备份的时候可能还在处理过程中,可能会在下一次增量备份时提交。所以需要使用xtrabackup --apply-log-only来阻止对事务回滚,否则增量备份是无效的。

假设有一个全备、两份增量备份:

/data/backups/base
/data/backups/inc1
/data/backups/inc2

  

要先对全备做prepare,再依次对增量备份做prepare:

$ xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base
$ xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base --incremental-dir=/data/backups/inc1
$ xtrabackup --prepare --target-dir=/data/backups/base --incremental-dir=/data/backups/inc2

  

xtrabackup-增量备份的更多相关文章

  1. xtrabackup增量备份mysql +MHA

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

  2. XtraBackup增量备份

    mysql:5.6.29xtrabackup:2.2.10mysql数据目录:/data/mysqlmysql备份目录:/data/dbbak/ #确保有足够的磁盘空间 官方文档:https://ww ...

  3. innobackupex 备份 Xtrabackup 增量备份

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

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

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

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

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

  6. xtrabackup 增量备份(InnoDB)

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

  7. mysql xtrabackup增量备份

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

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

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

  9. XtraBackup全备与增量备份

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

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

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

随机推荐

  1. 小教程:自己创建一个jQuery长阴影插件

    长阴影设计是平面设计的一个变体,添加了阴影,产生了深度的幻觉,并导致了三维的设计.在本教程中,我们将创建一个jQuery插件,通过添加完全可自定义的长阴影图标,我们可以轻松地转换平面图标. 戳我查看效 ...

  2. CAD块参照转实体

    经常,需要在CAD中插入块,比如图框,它的类型是INSERT,而不是Line和PolyLine.一般情况下,我们是不会去编辑它的,但有的时候需要选择它,比如在选择打印范围时,默认为过滤掉INSERT类 ...

  3. android中实现简单的聊天功能

    这个例子只是简单的实现了单机版的聊天功能,自己跟自己聊,啦啦~~ 主要还是展示RecyclerView控件的使用吧~ 参考我之前写的文章: android中RecyclerView控件的使用 andr ...

  4. ZH奶酪:基于ionic.io平台的ionic消息推送功能实现

    Hybrid App越来越火,Ionic的框架也逐渐被更多的人熟知. 在mobile app中,消息推送是很必要的一个功能. 国内很多ionic应用的推送都是用的极光推送,最近研究了一下Ionic自己 ...

  5. Selenium2(WebDriver)总结(四)---基本元素操作

    WebDriver提供了常用的WEB控件的操作方法,比如:按钮.输入框.超链接等,废话不多说,直接上代码: import org.openqa.selenium.By; import org.open ...

  6. 微软BI 之SSRS 系列 - 报表中分组聚合中处理不规则层次结构的技巧(没有子元素的时候不展开, 删除+符号)

    分组聚合的展开和收起效果在SSRS Report中非常常用,并且有时还要处理一些比较特别的情况.比如分组合并时有的层次结构是不规则的,有的组有两层,遇到这种情况应该如何处理?   注意到下面的这个需求 ...

  7. bootstrap自适应栅格系统布局

  8. python unittest case运行失败重试

    因为使用unittest进行管理case的运行.有时case因为偶然因素,会随机的失败.通过重试机制能够补充保持case的稳定性.查阅资料后发现,python的unittest自身无失败重试机制,可以 ...

  9. bat脚本禁用和开启本地连接

    netsh interface set interface name="本地连接" admin=disabled //禁用本地连接 netsh interface set inte ...

  10. tomcat6url请求400错误(%2F与%5C)

    近期几天,开发接口时.tomcat报了400错误,查了下原因. 错误原因:url中參数部分包括/,默认tomcat是不支持url參数包括: /(%2F),\(%5C). 解析方法:能够通过加入配置Do ...