XtraBackup备份原理和实战详解

第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语言编写,可以备份InnodbXtraD,不拷贝*.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值,保证数据块是一致的

InnoDBcp或者tar 命令,innobackupexcp MyISAM文件时已经做了flushFTWRL),磁盘上的文件也是完整的,所以最终备份集里的数据文件都是写入完整的

1.5.1备份流程

XtraBackup备份原理和实战详解

1.5.2 全备流程图

XtraBackup备份原理和实战详解

1.5.3 增量备份流程图

XtraBackup备份原理和实战详解

1.6 Xtrabackup恢复 1.6.1 恢复流程图

XtraBackup备份原理和实战详解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dad1f36d752db73b06198b266bbe402f.html