xtrabackup-增量备份
2017-09-21 13:42
295 查看
增量备份之所以能工作是因为每个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。
比如:
执行增量备份的过程:
如何对增量备份做prepare
对增量备份做prepare步骤,和全备不同。
对全被做prepare,为了确保数据一致性,要完成两种操作:事务前滚、事务回滚。
对增量备份做prepare,必须略过对未提交的事务的回滚,因为未提交的事务在备份的时候可能还在处理过程中,可能会在下一次增量备份时提交。所以需要使用xtrabackup --apply-log-only来阻止对事务回滚,否则增量备份是无效的。
假设有一个全备、两份增量备份:
要先对全备做prepare,再依次对增量备份做prepare:
增量备份会拷贝那些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备份与还原(全备&增量)
- Xtrabackup增量备份探索
- 用XtraBackup备份工具实现完整备份、恢复和增量备份、恢复
- 测试xtrabackup的增量备份与恢复
- 05: 实时增量备份 、 XtraBackup 备份 、 总结和答疑 、 MySQL 主从同步
- xtrabackup2.4 备份Precona5.6数据库,做增量备份与还原
- xtrabackup增量备份mysql
- xtrabackup 全备、增量备份恢复
- Xtrabackup备份mysql大数据库(完整备份与增量备份)
- Xtrabackup对mysql全备以及增量备份实施
- xtrabackup增量备份方案,备份恢复全过程记录
- xtrabackup增量备份mysql +MHA
- Xtrabackup物理备份Mysql(Innodb引擎)-全备份和增量备份
- xtrabackup<三、增量备份脚本>
- xtrabackup增量备份恢复
- Xtrabackup增量备份、恢复以及时间点恢复
- Xtrabackup--增量备份及恢复(三)
- xtrabackup之Innobackupex增量备份及恢复
- XtraBackup全备与增量备份
- xtrabackup 增量备份 恢复