前面讲到了用copy磁盘文件的物理备份、mysqldump逻辑备份的方式进行mysql数据库的备份。但copy磁盘文件的方式存在需要锁表且只支持MyIsam引擎,而mysqldump的方式迁移恢复速度较慢。今天我们再测试一种开源工具XtraBackup进行快速物理备份、恢复的工具。
一、首先安装XtraBackup软件
安装环境是CentOS 7.3,一共四条命令
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.12-1.el6.x86_64.rpm --no-check-certificate
yum -y localinstall percona-xtrabackup-24-2.4.12-1.el6.x86_64.rpm
二、开启mysql的bin log功能
1、vi /etc/my.cnf,打开bin log功能
[mysqld]
server_id=1918
log_bin = mysql-bin
binlog_format = ROW
2、在mariadb中检查bin log功能是否打开
show variables like '%log_bin%';
三、测试XtraBackup的全量备份功能
1、记录下当前的数据库,作为后期验证
2、创建全量备份
innobackupex --user=root --host=localhost --password= /tmp/2019-05-16_10-53-04
3、关闭数据库
systemctl stop mariadb
4、准备恢复备份
innobackupex --apply-log /tmp/2019-05-16_10-53-04
5、删除所有的数据库文件
rm -rf /var/lib/mysql/*
6、执行数据全量恢复
innobackupex --copy-back /tmp/2019-05-16_10-53-04
7、将所有的恢复数据的主人恢复为mysql帐号
chown -R mysql.mysql /var/lib/mysql/*
8、打开数据库,并进行检查
systemctl start mariadb
9、进入数据库,核查数据恢复成功
四、测试XtraBackup的优势
1)备份速度快,物理备份可靠
2)备份过程不会打断正在执行的事务(无需锁表)
3)能够基于压缩等功能节约磁盘空间和流量
4)自动备份校验
5)还原速度快
6)可以流传将备份传输到另外一台机器上
7)在不增加服务器负载的情况备份数据
希望以上文章能帮到您。
更多内容实时更新,请访问公众号。