第1章 XtraBackup 1.1 XtraBackup介绍
InnoDB 有个商业的InnoDB Hotbackup,可以对InnoDB引擎的表实现在线热备。而 percona出品的Xtrabackup,是InnoDB Hotbackup的一个开源替代品,可以在线对InnoDB/XtraDB引擎的表进行物理备份。mysqldump支持在线备份,不过是逻辑备份,效率比较差。xtrabackup是开源的MySQL备份工具,物理备份,效率很不错。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。Xtrabackup做备份的时候不能备份表结构、触发器等等,智能纷纷.idb数据文件。另外innobackupex还不能完全支持增量备份,需要和xtrabackup结合起来实现全备的功能。
1.2 XtraBackup特点介绍C语言编写,可以备份Innodb、XtraD,不拷贝*.frm文件
支持的引擎有:
InnoDB、Xtradb:hotbackup
MyISAM: with read lock
具有的特点有如下几点:
§ 1)备份过程快速、可靠;
§ (2)备份过程不会打断正在执行的事务;
§ (3)能够基于压缩等功能节约磁盘空间和流量;
§ (4)自动实现备份检验;
§ (5)还原速度快;
1.3 XtraBackup的下载安装Xtrabackup工具由Percona公司开发的开源热备工具,可以到官网下载到最新的版本文件。
https://www.percona.com/downloads/下载各种版本,也可以在系统中使用wget下载。
方法一:
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/RedHat/6/x86_64/percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
安装依赖的包
yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL installperl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
方法二:
下载好的rpm包,直接使用yum 安装,自动安装依赖包,但是需要有epel源的支持,所以要下载配置好epe'源
wget -O /etc/yum.repos.d/epel.repo
yum install -y percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
1.4 XtraBackup备份用户需要的权限RELOAD 和 LOCKTABLES 权限为了执行 FLUSHTABLES WITH READ LOCK
REPLICATION CLIENT 为了获取binary log位置
CREATE TABLESPACE 权限为了导入表,用户表级别的恢复
SUPER权限在slave环境下备份用来启动和关闭slave线程
1.5 XtraBackup备份InnoDB 和非InnoDB文件的备份都是通过拷贝文件,但是实现的方式是不同的。
InnoDB是以page为粒度做的的(Xtrabackup),Xtrabackup在读取每个page时会校验checksum值,保证数据块是一致的
非InnoDB是cp或者tar 命令,innobackupex在cp MyISAM文件时已经做了flush(FTWRL),磁盘上的文件也是完整的,所以最终备份集里的数据文件都是写入完整的
1.5.1备份流程
1.5.2 全备流程图 1.5.3 增量备份流程图 1.6 Xtrabackup恢复 1.6.1 恢复流程图