一、概述
XtraBackup是Percona公司针对mysql的专用工具,目前最新版本已经8.0.25-17.这款软件主要对标Oracle公司的Mysql backup商业软件,而这款软件是免费的。
二、内容实践
1、下载并安装mysql8.0版本
https://downloads.mysql.com/archives/community/
安装部分就略去了。。。。。
2、下载XtraBackup软件包percona-xtrabackup-80-8.0.25-17.1.el8.x86_64.rpm
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/
3、安装xtrabackup
yum localinstall percona-xtrabackup-80-8.0.25-17.1.el8.x86_64.rpm
4、开始完全备份数据库
xtrabackup -uroot -pcentos8 --backup --target-dir=/backup/
5、将备份数据复制到备份主机上
scp -r /backup 192.168.22.38:/
6、恢复备份数据
预准备备份数据
xtrabackup --prepare --target-dir=/backup/
清空目标机mysql目录的数据文件
systemctl stop mysqld
rm -rf /data/mysql/*
恢复拷贝文件
xtrabackup --copy-back --target-dir=/backup/
更改恢复的文件属性
chown -R mysql.mysql /data/mysql/
登陆备机启动mysql服务,查看恢复的数据
7、差异备份和恢复
在主服务器上备份基准版本
xtrabackup -uroot -pcentos8 --backup --target-dir=/backup/base
模拟修改数据,在teachers表中添加记录
备份第一次差异
xtrabackup -uroot -pcentos8 --backup --target-dir=/backup/inc1 --incremental-base=/backup/base
模拟第二次修改数据,在teachers表中添加第二条记录
备份第二次差异
xtrabackup -uroot -pcentos8 --backup --target-dir=/backup/inc2 --incremental-base=/backup/inc1
所有的备份文件
将所有的备份复制的目标主机上
scp -r /backup/ 192.168.22.38:/
清空/data/mysql目录,并确认mysqld服务是关闭的。准备恢复数据库
#准备基础版本,注意apply-log-only
xtrabackup --prepare --apply-log-only --target-dir=/backup/base
#准备第一个差异版本
xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1
#准备第二个差异版本
xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2
通过copy-back恢复数据库文件至目录
xtrabackup --copy-back --target-dir=/backup/base
更改数据库文件所属主和属组
chown -R mysql.mysql /data/mysql
启动数据库服务并验证数据
通过查询看出,二次差异所涉及的数据在数据库中。成功恢复所有数据到目标主机中。
三、总结
通过xtrabackup可以实现基于文件级别的备份,需要注意在备份过程中文件的属性。