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)

大家都在看

  • 使用JMeter进行MySQL的压力测试

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 前言 1. JMeter安装 2…

    数据库 2023年5月24日
    095
  • 计算机网络 | TCP 连接的建立 和 TCP 连接的断开

    TCP 连接的建立过程 一开始,客户端和服务端都处于 close 状态。 先是服务端监听某个端口,此时服务端处于 listen 状态。 这个时候客户端就可以发送连接请求报文了。 第…

    数据库 2023年6月11日
    0126
  • 互联网大厂那些儿“高逼格”词汇

    转载请注明出处❤️ 你好,我是测试蔡坨坨。 目前任职于上海某互联网公司测试开发工程师。 相信在互联网公司上班的同学,日常工作中一定听过不少互联网那些”高(zhuang)…

    数据库 2023年6月11日
    0166
  • ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

    本次 Apache ShardingSphere 5.1.2 版本更新为大家带来了三大全新功能,其中之一即为使用 ShardingSphere-Proxy chart 在云环境中快…

    数据库 2023年6月16日
    085
  • Java并发编程之美

    简介 《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有…

    数据库 2023年6月6日
    099
  • Java8日期时间(LocalDate、LocalTime、LocalDateTime)

    在看题的时候发现了Java8中新加入的日期时间类,觉得这个小哥写的不错,自己也跟着练习下。原文地址:https://blog.csdn.net/yy139926/article/d…

    数据库 2023年6月14日
    083
  • MySQL之外键、表关系及SQL查询关键字

    一、外键 假设我们现在有一个员工信息表,其中包含以下字段: [En] Suppose we now have an employee information table with …

    数据库 2023年5月24日
    076
  • 【MySQL】MySQL的安装、卸载、配置、登陆和退出

    1 MySQL安装 安装环境:Win10 64位软件版本:MySQL 5.7.24 解压版 1.1 下载 https://downloads.mysql.com/archives/…

    数据库 2023年5月24日
    092
  • MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL

    MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL…

    数据库 2023年6月14日
    099
  • Python–线程

    进程与线程的区别: 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位; 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线; 进程之间相互独立,但同一进程…

    数据库 2023年6月9日
    056
  • ImageIo.read 返回null

    一、问题描述 今天收到一个bug就是imageio读取图片会返回null,具体如下 但是其他的图片就没有问题 二、问题分析 结合百度发现这张图片原本的后缀并非是jpg,使用notp…

    数据库 2023年6月6日
    097
  • 加班整理出来的MySQL数据库基本操作送给大家,非常详细!

    哈喽兄弟们,中秋闲着没事,整理了一些数据库的基本操作,分享给大家,希望对大家有所帮助~ ; 一、SQL语句 (mysql 数据库中的语言) show databases;查看数据库…

    数据库 2023年6月14日
    0104
  • hosts文件作用

    1、加快域名解析对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络…

    数据库 2023年6月11日
    065
  • Vue 3.x基础

    Vue 3.x基础 模版 <template> // html </template> <script setup> // setup API …

    数据库 2023年6月11日
    083
  • 手写LRU缓存淘汰算法

    概述 LRU算法全称为 Least Recently Used是一种常见的页面缓存淘汰算法,当缓存空间达到达到预设空间的情况下会删除那些 最久没有被使用的数据 。 常见的页面缓存淘…

    数据库 2023年6月11日
    0131
  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数 位置参数存放的位置 是子应用中的自定义的”urls.py”文件中的路由中。 位置参数的设置: 如果位置参数很多,那…

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