xtrabackup原理

1.什么是xtrabackup

Percona-xtrabackup是 Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Percona server和MariaDB,开源免费,是目前较为受欢迎的主流备份工具。开源、免费的MySQL热备份软件,它可以为InnoDB和XtraDB数据库执行非阻塞备份(对于MyISAM的备份同样需要加表锁)。

在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略。例如每周实用完整备份,周一到周六实用增量备份。而Percona Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,xtrabakackup有2个工具,分别是xtrabakup、innobakupe。

Percona XtraBackup是一个开源的热备份工具,适用于基于MySQL的服务器,它不会在备份期间锁定你的数据库。它的设计目的是使备份成为一个无缝的过程,而不会影响生产环境中服务器的性能。

重要提示:版本8.0.6中添加了对MyRocks存储引擎的支持。

Percona XtraBackup 8.0不支持TokuDB存储引擎。由于MySQL 8.0引入的数据字典、redo日志和undo日志与以前的版本不兼容,Percona XtraBackup 8.0目前也不支持8.0之前的版本。

特点:

  • 创建热InnoDB备份而不暂停数据库

  • 对MySQL进行增量备份

  • 流压缩MySQL备份到另一个服务器

  • 在线在MySQL服务器之间移动表

  • 轻松创建新的MySQL复制从服务器

  • 备份MySQL而不增加服务器的负载

2.xtrabackup实现机制

Percona XtraBackup基于InnoDB的崩溃恢复功能。它复制你的InnoDB数据文件,导致在内部数据不一致随后它会对文件执行崩溃恢复,以使它们具有一致性和可用性。这是因为InnoDB维护了一个重做日志,也称为事务日志。其中包含了每次对InnoDB更改的记录。当InnoDB启动时,它检查数据文件和事务日志,并执行两个步骤。它将提交的事务日志项应用到数据文件中,并对撤销任何未提交但是已经修改数据的事务。

Percona XtraBackup通过在启动时记住日志序列号(LSN),然后复制来工作

数据文件。这需要一些时间,所以如果文件正在更改,那么它们将反映数据库的不同状态的时间点。同时,Percona XtraBackup运行一个监视事务的后台进程记录文件,并从中复制更改。Percona XtraBackup需要不断地这样做,因为事务日志以循环方式编写,一段时间后可以重用。Percona XtraBackup需要事务日志记录自开始执行以来对数据文件的每次更改。以循环方式编写,一段时间后可以重用。Percona XtraBackup需要事务日志记录自开始执行以来对数据文件的每次更改。

Percona XtraBackup使用备份锁作为刷新表的轻量级替代

只有在Percona XtraBackup完成对所有InnoDB/XtraDB数据和日志的备份后,才会对MyISAM和其他非InnoDB表进行锁定。Percona XtraBackup使用这个自动复制非innodb数据以避免阻塞

DML查询修改InnoDB表。

3.xtrabackup的备份流程

在这里插入图片描述
1)xtrabackup启动后会fork一个进程,等待复制ibd文件

2)3)4)开启2种线程,redo拷贝线程和ibd数据拷贝线程,ibd线程退出,redo线程继续

5)ibd文件拷贝完成,xtrabackup进入等待

6)7)执行(FTWRL),取得一致性位点,然后开始备份非InnoDB文件,数据库处于全局只读状态

8)~11)非InnoDB文件拷贝完毕,通知停止redo拷贝线程,xtrabackup进入等待

12)收到redo完成后,执行unlock tables

13)~15)各进程释放

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值