Xtrabackup 8.0.x关于MySQL的版本支持的浅析

我们知道从MySQL 8.0.x开始,我们必须用Percona Xtrabackup 8.0.x来备份,之前的Percona XtraBackup 2.4已经不支持MySQL 8.x的备份了。而且Percona Xtrabackup 8.0.x也不支持备份之前的MySQL 5.6/MySQL 5.7了。但是我们对Percona Xtrabackup的具体版本支持哪一些MySQL版本了解甚少,而且官方文档也没有很详细的介绍资料。

下面来看一个案例,最近安装了一个MySQL环境,MySQL版本为最新的MySQL 8.0.28版本,Percona XtraBackup版本也是下载最新的8.0.27-19版本。

MySQL版本:8.0.28 MySQL Community Server – GPL

Xtrabackup版本:8.0.27-19

使用Percona Xtrabackup 8.0.27备份MySQL 8.0.28的时报错,如下所示:

提示当前的Percona Xtrabackup(8.0.27-19)不支持MySQL 8.0.28. 但是当前时间节点(2022-02-11),Percona官方网址,Xtrabackup最新版本为percona-xtrabackup-80-8.0.27-19.1.el7.x86_64.rpm。而MySQL的官方最新版本为MySQL 8.0.28。看了一下发布日期,MySQL 8.0.28是Sep 28, 2021发布的。 而percona-xtrabackup 8.0.27是February 2, 2022才发布的。也就是说目前官方还没有发布percona-xtrabackup 8.0.28

不过,根据官方文档,Percona XtraBackup 8.0.21开始,新增了–no-server-version-check参数。此参数控制是否将源系统版本与Percona XtraBackup版本进行比较。

关于这个参数,我搜索了官方信息,如下所示

[En]

With regard to this parameter, I searched the official information, as shown below

Percona XtraBackup_8.0.21 adds the –no-server-version-check parameter. This parameter compares the source system version to the _Percona XtraBackup version.

The parameter checks for the following scenarios:

·The source system and the PXB version are the same, the backup proceeds

·The source system is less than the PXB version, the backup proceeds

·The source system is greater than the PXB version, and the parameter is not overridden, the backup is stopped and returns an error message

·The source system is greater than the PXB version, and the parameter is overridden, the backup proceeds

Explicitly adding the –no-server-version-check parameter, like the example, overrides the parameter and the backup proceeds.

$ xtrabackup –backup –no-server-version-check –target-dir=$mysql/backup1

When you override the parameter, the following events can happen:

·Backup fails

·Creates a corrupted backup

·Backup successful

该参数检查以下场景:

·源系统和PXB版本一样,备份继续

·源系统低于PXB版本,备份继续

·源系统大于PXB版本,且参数未被覆盖,停止备份并返回错误信息

·源系统大于PXB版本,参数被覆盖,备份继续

所以我们如果使用参数–no-server-version-check备份的话,可能可以备份成功。也可能备份失败,还有可能创建了一个损坏的备份。

后来,在搜索相关资料时,我也看到其他人遇到了类似的问题,详细信息请参阅参考资料链接。

[En]

Later, when searching for relevant materials, I also saw that others encountered similar problems, as detailed in the Resources link.

关于Percona Xtrabackup 8.0.x的版本支持与限制,其实之前也是很少去了解这方面的内容,而Percona官方也没有详细的资料介绍,那么Xtrabackup 8.0.x是否能向下兼容支持呢 ?

例如 Xtrabackup 8.0.27-19 是否支持备份 MySQL 8.0.26 或MySQL 8.0.26之下的MySQL 8..的版本呢,简单测试了一下,我安装了一个MySQL 8.0.26,然后安装Xtrabackup 8.0.27-19, 测试验证它能否备份成功,看来Xtrabackup 8.0.x应该是向下兼容(当然Xtrabackup 8.0.x只能向下兼容 MySQL8.0.x的版本)

后面我搜索相关资料时,也看到了官方一则博客,它也只是简单介绍了一下,Percona XtraBackup 8.0.12之前的版本不支持MySQL 8.0.20或以上版本的备份。因为此版本包含对 InnoDB 重做日志格式的更改,这破坏了与所有当前发布的 Percona XtraBackup 8.x 系列版本的兼容性。

Update:Percona XtraBackup 8.0.12 now supports backup and restore processing for versions of MySQL 8.x; previous versions of Percona XtraBackup will not work with MySQL 8.0.20 and higher. More information

On Monday, April 27, 2020, Oracle released the highly anticipated 8.0.20 version of the MySQL database server. This release contains changes to the InnoDB redo log format which breaks compatibility with all currently released versions of the Percona XtraBackup 8.x series.

At this time, there are no known workarounds that will allow any version of Percona XtraBackup 8.x to function properly with MySQL 8.0.20.

We have identified the specific cause of the issue and diligently working towards a new release that will safely solve this issue as soon as possible.

Thank you for your patience.

看来MySQL 8.0.的变更太快,Percona Xtrabackup 8.0.的版本开发有点跟不上节奏了。开源免费的产品,在版本的更新发布上肯定不如商业软件那么高效,这也是开源软件的一些缺陷,没办法的事情。

参考资料:

https://forums.percona.com/t/when-will-xtrabackup-8-0-26-18-release/11944

https://www.percona.com/doc/percona-xtrabackup/LATEST/using_xtrabackup/comparison.html

Original: https://www.cnblogs.com/kerrycode/p/15902606.html
Author: 潇湘隐者
Title: Xtrabackup 8.0.x关于MySQL的版本支持的浅析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/507822/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot 中发布ApplicationEventPublisher,监听ApplicationEvent 异步操作

    有这么一个业务场景:当用户注册后,发送邮件到其邮箱提示用户进行账号激活,且注册成功的同时需要赠送新人用户体验卡券。 业务有了,那么问题也就来了。 What? 问题….问…

    数据库 2023年6月6日
    0264
  • 什么是前缀索引?

    一、什么是前缀索引? 所谓前缀索引,说白了就是对文本的前几个字符建立索引( 具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效…

    数据库 2023年6月14日
    0107
  • SQL语句大全–SQL

    前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证s…

    数据库 2023年5月24日
    063
  • IPFS 集群部署

    IPFS 和 IPFS-Cluster 默认的端⼝:IPFS: 4001 – 与其他节点通信端⼝ 5001 – API server 8080 – Gateway server I…

    数据库 2023年6月9日
    082
  • javaWeb知识点大集合!!!

    pom文件: 4.0.0 org.example javaweb_maven 1.0-SNAPSHOT war UTF-8 1.7 1.7 com.github.pagehelpe…

    数据库 2023年6月16日
    086
  • 15. 三数之和

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案…

    数据库 2023年6月16日
    073
  • 给小白的 PG 容器化部署教程(下)

    作者:王志斌编辑:钟华龙 本文来自社区小伙伴 王志斌 的投稿。从小白的角度,带你一步步实现将 RadonDB PostgreSQL 集群部署到 Kubernetes 上。文章分为上…

    数据库 2023年5月24日
    0106
  • windows环境下nacos集群启动报错-无法启动内嵌的tomcat

    解决办法:使用64位jdk切记不要使用32位。切记不要使用32位。切记不要使用32位。 Original: https://www.cnblogs.com/journeyhch/p…

    数据库 2023年6月11日
    084
  • MySQL InnoDB索引原理

    数据库与I/O原理 数据会持久化到磁盘,查询数据是就会有I/O操作,相对于缓存操作,I/O操作的时间成本相当高昂。 I/O操作的基本单位是一个磁盘页面,比如16KB的页面大小。当数…

    数据库 2023年6月14日
    091
  • Hadoop生态二—Hadoop资源管理调度平台Yarn

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序Yarn是一个资源调…

    数据库 2023年6月6日
    0116
  • Springboot 注解失效问题 @Async, @Transactional, @Subsribe

    问题描述:在一个Service的某个方法上使用了guava eventbus @subscribe注解,最开始发现没有收到消息,debug发现是该service的该方法没有注册到e…

    数据库 2023年6月11日
    080
  • 设计模式之(2)——工厂方法模式

    定义:工厂方法模式又称为工厂模式、多态工厂模式和虚拟构造器模式,通过定义工厂父类来定义创建对象的接口,而子类负责生成具体的对象; 主要作用:将类的实例化延迟到工厂类的子类中进行,由…

    数据库 2023年6月14日
    0102
  • 3. 视图-触发器-存储过程-索引

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    070
  • Java List分批处理

    工作中经常遇到分批处理的问题,比如将一个List列表中的数据分批次保存至数据库中。如果列表中数据条目很大,比如1000万条以上,mysql中 max_allowed_packet …

    数据库 2023年6月14日
    098
  • spring内嵌cglib包,这里藏着一个大坑

    问题发现 2022-01-21 早上 9 点,订单系统出现大面积的”系统未知错误”报错,导致部分用户无法正常下单。查询后台日志,可以看到大量的 duplic…

    数据库 2023年6月6日
    0109
  • B树-查找

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 查找 假设有一棵3阶B树,如下图所示。 下面说明在该B树中查找 52的过程 首先,从根结点出发…

    数据库 2023年6月14日
    0138
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球