xtrabackup 增量备份和部分备份

标签: xtrabackup 备份 备份 | 发表时间:2013-10-11 22:34 | 作者:linwaterbin
出处:http://blog.csdn.net
㈠ 增量备份

原理:
① 首先进行0级备份,记录此时LSN
② 当进行1级备份时,比较表空间中每个页的LSN是否大于0级备份的LSN,如果是,则备份该页,并记录当前的LSN
0级备份完,xtrabackup会在备份保存点下的xtrabackup_checkpoints文件里记录一个to_lsn值,该值是备份结束后全库的LSN
下面是0级备份的一个简单例子:
$ xtrabackup --backup --target-dir=/home/mysql/backup
到/home/mysql/backup目录下查看xtrabackup_checkpoints文件,大概会有如下类似信息:
[[email protected] backup]$ cat xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 2674772512

接着可以做1级备份:
$ xtrabackup --backup --target-dir=/home/mysql/delta --incremental-basedir=/home/mysql/backup
在/home/mysql/delta下,大概会有*.ibd.delta和ibdata1.delta文件,这些表示从to_lsn = 2674772512之后有变化
如果检查/home/mysql/delta下的/home/mysql/delta文件,会有如下类似信息:
[[email protected] delta]$ cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 2674772512
to_lsn = 2674772512

都有to_lsn值,这会增量的迭代做了基础

在--prepare阶段,增量备份和普通的备份存在差异
对于普通的备份,已提交的事务通过备份的数据文件利用日志中的变化信息去重演这个变化的过程,而未提交的会被回滚
对于增量备份,在--prepare阶段,必须跳过未提交事务的回滚,因为它们在下一次增量备份时可能会被提交
所以,应该使用--apply-log-only来阻止未提交事务的回滚,如果你不那么做的话,增量备份可能会变成无效
若是事务被回滚掉,则下一次的增量备份将无法应用

假定你做了一次0级和2次增量备份,目录如下:
/data/backups/base
/data/backups/inc1
/data/backups/inc2
那么为了阻止事务的回滚,你应该:
$ xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base
这步完成,即使跳过事务回滚,你的备份也算是有效的,如果此时恢复MySQL,InnoDB会在后台做崩溃恢复,并告知你上次未正常关库而已
运用第一次增量备份:
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
在运用最后一次增量备份时,我们把--apply-log-only略去了,也只有在最后一次增量--prepare时才可以省略
因为我们没有必要把这个回滚解析交给服务器去做,这只会增加Server的压力,但即使--apply-log-only,备份仍然是一致的



㈡ 部分备份

当innodb_file_per_table打开时,xtrabackup支持部分备份,有2种方式:--tables和--tables-file 
我本人不喜欢--tables,比较麻烦,需要正则表达式匹配和考虑OS转义符还有BASH命令长度,巨蛋疼
主要把要备份的表写到一个文件里面即可,每个表一行
例如,我只想备份employees库下面的employees和departments这2个表
$ xtrabackup --backup --tables-file=/tmp/t.TXT --target-dir=/home/mysql/backup
需要注意的是,--tables-file指定的文件只能放在/tmp下,估计是xtrabackup工具内部写死的关系

但是在--prepare时你将会收到一个类似下面的错误:

131011 14:05:24  InnoDB: Error: trying to open a table, but could not
InnoDB: open the tablespace file './employees/dept_emp.ibd'!
InnoDB: It will be removed from data dictionary.

这是因为这些表载xtrabackup内置的InnoDB数据字典中存在,但相应的.ibd不存在


参考文章:
http://www.percona.com/doc/percona-xtrabackup/2.1/


By 迦夜
2013-10-11 
Learn bearish some things,is their best protection

作者:linwaterbin 发表于2013-10-11 14:34:49 原文链接
阅读:0 评论:0 查看评论

相关 [xtrabackup 备份 备份] 推荐:

使用Percona XtraBackup备份MySQL

- - searchdatabase
  Percona XtraBackup是一款开放源码,免费的MySQL热备份软件,以非阻塞方式执行备份InnoDB和XtraDB为存储引擎的数据库,是商业备份工具InnoDB Hotbackup的一个很好的替代品. 作者的前一家公司就花了不菲美元买了Hotbackup产品.     下载地址: http://www.searchdatabase.com.cn/softwaredownload_10241.htm.

xtrabackup 增量备份和部分备份

- - CSDN博客推荐文章
① 首先进行0级备份,记录此时LSN. ② 当进行1级备份时,比较表空间中每个页的LSN是否大于0级备份的LSN,如果是,则备份该页,并记录当前的LSN. 0级备份完,xtrabackup会在备份保存点下的xtrabackup_checkpoints文件里记录一个to_lsn值,该值是备份结束后全库的LSN.

Mysql备份和恢复的一种可行方案---Xtrabackup

- - SegmentFault 最新的文章
这几天使用Xtrabackup实现了下mysql的全库备份和恢复,这里和大家分享下实现的思路. 关于Xtrabackup(又或innobackupex)的介绍这里就不啰嗦了,感兴趣的同学请移步 官方文档,这里只要知道它提供了mysql备份和恢复的功能就可以了. Xtrabackup提供了全量备份和增量备份两种方式,全量就不解释了,增量是指其可以只备份指定位置后的新增数据.

Xtrabackup全量备份与恢复mysql数据库

- - CSDN博客系统运维推荐文章
一、Xtrabackup简单概述:. Percona  Xtrabackup是开源免费的mysql数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁). XtraBackup支持所有的Percona Server、MySQL、MariaDB和Drizzle.

oracle定时备份-增量备份

- - 数据库 - ITeye博客
在进行数据库维护的过程中经常会遇到数据库备份的问题. 先介绍一种常用的数据备份操作. 系统执行计划+批处理命令;. 在win的系统中存在 任务计划程序 选项;新建任务选中你写好的程序,设定好时间,就可以按照设定的时间执行程序了. 在备份oracle时写一个导入命令,例如. 把它考到文件中,扩展名改为.bat.

RMAN 备份脚本

- - CSDN博客数据库推荐文章
RMAN冷备份、一致性备份脚本. RMAN热备份、非一致性备份脚本. rman名称不允许重复,%U肯定不重复. %D 位于该月中的第几天 (DD). %M 位于该年中的第几月 (MM). %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,. %d 数据库名称其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列.

Solr主从备份

- - 研发管理 - ITeye博客
SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可. 以下讲解具体操作步骤: . 步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样.

Percona Xtrabackup MySQL 全备

- - CSDN博客数据库推荐文章
作者:ylqmf 发表于2013-3-24 17:29:55 原文链接. 阅读:99 评论:0 查看评论.

Percona XtraBackup 1.6.7 发布

- - 开源中国社区最新新闻
Percona XtraBackup 1.6.7 发布,该版本主要是 bug 的修复,详细列表请看 这里. XtraBackup 是一个用来备份 MySQL 的 InnoDB 数据库的开源工具. 例如执行增量备份的命令是:.

Oracle备份恢复概要

- - CSDN博客数据库推荐文章
   (5)RAID和镜像驱动器.    (1)收集备份与恢复策略需求.    (2)精心设计备份与恢复计划.  1、ORACLE各种备份.      ①联机备份(热)和脱机备份(冷).      ②不一致性备份和一致性备份.      ①完全备份:归档模式、非模式模式.      ⑤归档日志文件备份.