xtrabackup-增量备份
2024-10-19 04:27:18
增量备份之所以能工作是因为每个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
最新文章
- Dom addEventlistener与id 绑定事件的区别(续)
- Java并发之CountDownLatch
- Linux中fork()函数详解
- 动态生成元素动作绑定,jquery 1.9如何实现
- Debian Environment Variables
- 介绍 .NET Standard
- oracle 按某个字段查询重复数据
- c# 服务程序重启自身
- 2018-2019-2 20165311《网络对抗技术》Exp5 MSF基础应用
- webpack学习笔记 (二) html-webpack-plugin使用
- 测试计划的编写6要素(5W1H)
- 将本地项目上传至github
- Jmeter之csv参数化
- burpsuite https证书设置
- 69A
- linux weblogic 控制台进入缓慢
- c# C#获取屏幕鼠标坐标点颜色
- python nose测试框架全面介绍七--日志相关
- 将keras模型在django中应用时出现的小问题——ValueError: Tensor Tensor(";dense_2/Softmax:0";, shape=(?, 8), dtype=float32) is not an element of this graph.
- Windows安装ActiveMQ记录
热门文章
- 使用jsp内置对象request获取表单提交中文内容乱码的解决办法
- .net 关于匿名类型的特性
- 【Linux】Ubuntu配置服务自启动 sysv-rc-conf
- Echart 仪表盘和柱形图
- MongoDB副本集配置系列五:副本集的在线迁移
- node.js 标准/错误输出 和 process.exit
- VTK三维点集轮廓凸包提取
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释(转)
- dom4j 输出UTF-8 XML时中文乱码
- 转 PHP5+APACHE2.2配置