阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Xtrabackup 简介

226次阅读
没有评论

共计 2055 个字符,预计需要花费 6 分钟才能阅读完成。

Xtrabackup 是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写),特点如下:
1. 备份过程快速、可靠;
2. 备份过程不会打断正在执行的事务;
3. 能够基于压缩等功能节约磁盘空间和流量;
4. 自动实现备份检验;
5. 还原速度快;

XtraBackup 有两个工具:xtrabackup 和 innobackupex:
1.xtrabackup 本身只能备份 InnoDB 和 XtraDB,不能备份 MyISAM;
2.innobackupex 本身是 Hot Backup 脚本修改而来,同时可以备份 MyISAM 和 InnoDB,但是备份 MyISAM 需要加读锁。

官网:http://www.percona.com/software/percona-xtrabackup
文档:http://www.percona.com/doc/percona-xtrabackup/2.4/index.html
中文翻译文档:Percona XtraBackup User Manual 阅读笔记

一、InnoDB 的备份原理

在 InnoDB 内部会维护一个 redo 日志文件,我们也可以叫做事务日志文件。事务日志会存储每一个 InnoDB 表数据的记录修改。当 InnoDB 启动时,InnoDB 会检查数据文件和事务日志,并执行两个步骤:它应用(前滚)已经提交的事务日志到数据文件,并将修改过但没有提交的数据进行回滚操作。
备份过程
Xtrabackup 在启动时会记住 log sequence number(LSN),并且复制所有的数据文件。复制过程需要一些时间,所以这期间如果数据文件有改动,那么将会使数据库处于一个不同的时间点。这时,xtrabackup 会运行一个后台进程,用于监视事务日志,并从事务日志复制最新的修改。Xtrabackup 必须持续的做这个操作,是因为事务日志是会轮转重复的写入,并且事务日志可以被重用。所以 xtrabackup 自启动开始,就不停的将事务日志中每个数据文件的修改都记录下来。
准备过程
上面就是 xtrabackup 的备份过程。接下来是准备(prepare)过程。在这个过程中,xtrabackup 使用之前复制的事务日志,对各个数据文件执行灾难恢复(就像 mysql 刚启动时要做的一样)。当这个过程结束后,数据库就可以做恢复还原了。

二、MyISAM 的备份原理

以上的过程在 xtrabackup 的编译二进制程序中实现。程序 innobackupex 可以允许我们备份 MyISAM 表和 frm 文件从而增加了便捷和功能。Innobackupex 会启动 xtrabackup,直到 xtrabackup 复制数据文件后,然后执行 FLUSH TABLES WITH READ LOCK 来阻止新的写入进来并把 MyISAM 表数据刷到硬盘上,之后复制 MyISAM 数据文件,最后释放锁。

备份 MyISAM 和 InnoDB 表最终会处于一致,在准备(prepare)过程结束后,InnoDB 表数据已经前滚到整个备份结束的点,而不是回滚到 xtrabackup 刚开始时的点。这个时间点与执行 FLUSH TABLES WITH READ LOCK 的时间点相同,所以 myisam 表数据与 InnoDB 表数据是同步的。类似 Oracle 的,InnoDB 的 prepare 过程可以称为 recover(恢复),myisam 的数据复制过程可以称为 restore(还原)。
Xtrabackup 和 innobackupex 这两个工具都提供了许多前文没有提到的功能特点。手册上有对各个功能都有详细的介绍。简单介绍下,这些工具提供了如流(streaming)备份,增量(incremental)备份等,通过复制数据文件,复制日志文件和提交日志到数据文件(前滚)实现了各种复合备份方式。

更多 XtraBackup 相关教程见以下内容

MySQL 管理之使用 XtraBackup 进行热备 http://www.linuxidc.com/Linux/2014-04/99671.htm

使用 Xtrabackup 进行 MySQL 备份  http://www.linuxidc.com/Linux/2016-11/137734.htm

MySQL 开源备份工具 Xtrabackup 备份部署 http://www.linuxidc.com/Linux/2013-06/85627.htm

MySQL Xtrabackup 备份和恢复 http://www.linuxidc.com/Linux/2011-12/50275.htm

Percona Xtrabackup 安装  http://www.linuxidc.com/Linux/2016-11/137735.htm

使用 Xtrabackup 进行 MySQL 数据库全备和全备还原  http://www.linuxidc.com/Linux/2016-11/137736.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137737.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2055字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中