一、 xtrabackup安装
根据实际情况选择相应版本的xtrabackup,mysql是5.7.xx对应的xtrabackup版本为2.4.*,mysql8.0以上的对应的xtrabackup版本为8.x.x
#安装依赖包:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev
#下载软件并安装
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm
二 、介绍
Percona XtraBackup工具提供了一种在系统运行时执行MySQL数据热备份的方法。2.4版本开始支持非innodb表的备份
工作原理
InnoDB表:
对于innodb不锁表,拷贝数据页,最终以数据文件的方式保存下来,把一部分redo和undo一并备走,属于热备方式。
大概的工作流程如下
- xbk备份执行的瞬间,立即触发checkpiont,已提交的数据脏页,从内存刷写到磁盘,并记录此时的LSN号
- 拷贝innoDB表相关的文件(ibdata,frm,ibd…)
- 记录备份过程中产生的redo和undo一起拷贝走,也就是checkpoint LSN之后的日志
- 再次统计LSN
- 记录二进制日志位置