MySQL 8 物理备份工具测试(xtrabackup , mysqlbackup)

作者:卸甲归田

最近一直在学习Percona的 xtrabackup,碰巧看到Percona xtrabackup发布支持MySQL 8版本的新闻:https://www.percona.com/blog/2018/10/09/announcement-second-alpha-build-of-percona-xtrabackup-8-0-is-available/

虽然没有release,但是都第2版了,应该可以试试了。这次就用收费版的MySQL Enterprise Backup(mysqlbackup)工具对比一下。

安装percona xtrabackup

测试版的xtrabackup只能用过yum安装,根据网页上的介绍,

安装yum 源:

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

修改/etc/yum.repos.d/percona-release.repo,将testing和experimental的源enable,比如:

搜索yum源:

安装percona-xtrabackup-80.x86_64

(如果提示缺包libev包,在centos网站上可以下载,rpm -ivh libev-4.15-3.el7.x86_64.rpm)

还有一个问题,就是会报冲突错误:

Transaction check error:

file /etc/my.cnf from install of Percona-Server-shared-56-5.6.37-rel82.2.el7.x86_64 conflicts with file from package mysql-community-server …

安装会失败,网上也有答案,并不是安装xtrabackup需要这个Percona-Server-shared,而是需要mysql-community-libs-compat,需要MySQL老版本的一些库文件。安装了mysql-community-libs-compat,再安装xtrabackup,就能成功完成了,也没提示说要装Percona-Server-shared。

安装完成后查看版本

安装MySQL Enterprise Backup for Server 8.0

可以从edelivery.oracle.com下载,下载后就是一个rpm包,直接安装就行。

备份测试

我采用MySQL Server 8.0.13,用sysbench造了570G左右的数据,用两个工具分别备份。

分别测试了两种情况下的备份,一种是MySQL online,但是没有负载,一种是用sysbench加一定的读写负载,看看这两种情况下备份工具的表现。

Sysbench加压的语句:

Percona Xtrabackup

Mysqlbackup

在进行有负载时的在线备份时,xtrabackup遇到了问题,备份过程中报错”xtrabackup: error: log block numbers mismatch”,备份fail。根据网上的资料,出现这个错误,要么改大innodb_log_file_size,要么在业务不繁忙时再备份,这个压力本来就是我们造的,所以只能尝试将innodb_log_file_size改大,目前的innodb_log_file_size为1G,在尝试多次后,将innodb_log_file_size改大到6G时(innodb_buffer_pool_size = 2G,innodb_buffer_pool_instances=6),不再报这个错误,备份能正常完成了,备份时间当然比没有压力时要长。

但是使用mysqlbackup,在innodb_log_file_size 为1G时,也能正常完成备份,不会有报错,只是时间比xtrabackup长一些。

备份时间对比

Xtrabackup还有一个小问题,就是在prepare的时候,无法成功。因为我使用的mysql server是8.0.13版本,最新的xtrabackup还不能识别MySQL 8.0.13的log格式,所以在prepare阶段报错 “xtrabackup: Unknown error 3611″,google了一下,发现是bug PXB-1699,简单说就是这版的xtrabackup是基于MySQL 8.0.12开发的,在MySQ L8.0.13上,备份是OK的,但是prepare时,因为SDI文件版本有变化,导致xtrabackup无法识别,所以报错,解决方法是,要不等新版本的xtrabackup,要不将MySQL降级到8.0.12。又找了个MySQL 8.0.12,测试了一下,果然是没问题。

未经允许不得转载:Oracle一体机用户组 » MySQL 8 物理备份工具测试(xtrabackup , mysqlbackup)

相关推荐