标签 XtraBackup 下的文章

概述

关于XtraBackup

XtraBackup是由Percona公司开发的一款基于InnoDB的MySQL数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对InnoDB和XtraDB数据库进行热备的工具。其有如下特点:

  1. 备份过程快速、可靠;
  2. 备份过程不会打断正在执行的事务;
  3. 能够基于压缩等功能节约磁盘空间和流量;
  4. 自动实现备份检验;
  5. 还原速度快;

XtraBackup功能

  • 热备份
  • 增量备份
  • 备份到另一台MySQL服务器
  • 在MySQL服务器之间在线迁移表
  • 轻松创建新的从服务器
  • 备份时,不占用服务器资源

XtraBackup工作原理

XtraBackup是基于InnoDB的crash恢复功能。复制InnoDB数据文件,但是数据是不一致的,然后使用crash恢复让数据文件一致。当InnoDB启动时会去检查数据文件和日志文件,然后重做已提交事务,执行未提交事务。

XtraBackup记下LSN(Log Sequence Number),然后启动,复制数据文件。同时XtraBackup启动一个后台进程用来监控日志文件,然后复制修改,这个进程在备份期间一直是运行的,因为日志文件时回绕的,避免数据被覆盖无法恢复。直到备份完成。

第二阶段就是预备阶段,XtraBackup通过执行crash恢复,应用日志文件到数据文件上。等待复制InnoDB结束,然后执行FLUSH TABLES WITH READ LOCK,停止对mysql数据的修改。复制非innodb引擎表,直到复制完成,然后释放锁。

这样在prepare阶段后,InnoDB和非InnoDB相互保持了一致性。InnoDB会一直redo,直到备份完成。这个时间刚刚好和FLUSH TABLES WITH READ LOCK时间一直,所以InnoDB和非InnoDB是保持同步的。

- 阅读剩余部分 -