percona-xtrabackup备份学习

Percona XtraBackup

官方网址对Percona XtraBackup的描述如下:

Percona XtraBackup是一个免费,开源,完成在线备份解决方案所有版本的Percona MySQL服务器,MySQL®和MariaDB®。通过超过3,000,000的下载,Percona XtraBackup在事务系统上执行在线非阻塞、紧密压缩、高度安全的备份,以便在计划的维护窗口中应用程序仍然完全可用。

使用者Facebook

Facebook用户每天都要创造大量的数据。为了确保数据可靠地存储,我们每天备份数据库。Facebook是Percona XtraBackup中一个早期的增量备份的采用者。

安装

yum install percona-xtrabackup -y

工具

xtrabackup包含两个主要的工具

  • xtrabackup

只能备份innodb和xtradb两种引擎的表,而不能备份myisam引擎的表

  • innobackupex

innobackupex是一个封装了xtrabackup的Perl脚本,支持同时备份innodb和myisam,但在对myisam备份时需要加一个全局的读锁。还有就是myisam不支持增量备份。

备份流程

备份过程图
备份开始时首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现redo中有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中。之后复制innodb的数据文件和系统表空间文件ibdata1,待复制结束后,执行flush tables with read lock操作,复制.frm,MYI,MYD,等文件(执行flush tableswith read lock的目的是为了防止数据表发生DDL操作,并且在这一时刻获得binlog的位置)最后会发出unlock tables,把表设置为可读可写状态,最终停止xtrabackup_log。

全量备份

chosen1cwp wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!