写点什么

Galera MySQL 5.7.17 bug 修复

  • 2019-09-15
  • 本文字数:923 字

    阅读完需:约 3 分钟

Galera MySQL 5.7.17 bug修复

Galera MySQL 5.7.17 由于设置 innodb_undo_table_spaces 大于 0 导致使用 RSYNC 进行全量数据同步失败的原因及解决办法

Part.1

一 问题现场

将一个初始化过(执行过–initialize)的节点添加到 Galera MySQL 集群中时:数据同步完成后,Innodb 使用 undo log 中的记录回滚未提交的事务时会触发下面的 ERROR:




ERROR 说 Innodb 访问了一个 undo log 表空间之外的数据页。

二 问题猜测

在 Galera MySQL 中,向正在运行的集群中添加一个节点时会触发全量数据同步——SST。SST 会选择一个 donor,并将这个 donor 的整个数据目录中的内容同步给新添加的节点。


照此,如果新添加的节点上的数据是 donor 节点的一份一模一样的拷贝的话,那 undo log 也会是 donor 节点正在使用的 undo log,理论上也就不会出现任何问题。


所以怀疑是在进行 SST 的时候出了问题,没能正常同步 undo log。

三 验证猜测

删除没能正常同步数据的节点数据文件夹夹内的所有文件(恢复到–initialize 之前的状态)并启动 MySQL,将这个节点添加到集群中,发现数据文件夹内并没有 undo log:



于是产生上面 ERROR 的原因可以确定为是执行 SST 时没能正常同步 undo log table space。

Part.2

问题解决

出现问题的 Galera MySQL 集群使用 rsync 作为 SST 同步数据的方法;在使用 rsync 同步数据时默认会使用【/usr/bin/wsrep_sst_rsync】程序。


改程序在调用 rsync 传输数据之前会为 rsync 设置如下的文件过滤规则:



可以看出文件过滤规则中虽然指定了 innodb 的系统表空间 iddata,但是却没有添加 undo log 表空间的文件——以 undo 开头的文件:



在 MySQL 5.7 之后的版本,为了避免大的事务造成系统表空间变的过大,将配置【innodb_undo_table_spaces】设置为大于 0 的值时,Innodb 使用独立于系统表空间之外的文件存储 undo log;但是 Galera MySQL 的【wsrep_sst_rsync】却没有考虑到这一点,导致进行数据同步时,没能正确同步独立的 undo log 表空间。


于是在 wsrep_sst_rsync 程序中设置文件过滤的行中进行如下修改:


之后就可以成功添加节点了。

Part.3

问题跟进

目前这个问题已经提交给了 Galera MySQL,并且已经被官方修复。



本文转载自公众号滴滴技术(ID:didi_tech)。


原文链接:


https://mp.weixin.qq.com/s/wKdU7GskIIFRVDGOXKry-Q


2019-09-15 23:181061

评论

发布
暂无评论
发现更多内容

2022年最佳云计算认证:开启你的云端开发之路

qife122

云计算 AWS GCP

数据中心升级十字路口:超融合架构,是理想路径还是现实考量?

智驱前线

超融合架构

基于 WebGL 的数字孪生项目

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

CANN与智谱GLM强强联合,国产AI加速迈向端云协同

极客天地

AI语境下创新教学模式应用示范与推广联盟成立丨南开大学携手和鲸,破解AI时代教育难题

ModelWhale

AI教育 南开大学 和鲸

华大北斗入选深圳品牌发展白皮书 领航者荣膺 "品牌功勋人物"

江湖老铁

探索Parquet格式:实现高效数据存储与优化查询性能

星环科技

人工智能 技术 数据

MyEMS 开源能源管理系统:技术创新与实战价值解析

开源能源管理系统

开源 能源管理系统

自定义策略检查助力自动化推理技术普及

qife122

AWS IAM 策略验证

超融合架构是什么?一文看懂计算、存储、网络的一体化

智驱前线

海外品牌危机频发的背后,你是否看见了数据盲区?

沃观Wovision

数据 沃观Wovision 舆情监测系统 海外舆情监测

JimuReport 积木报表 v2.1.2 版本发布,免费开源的可视化报表和大屏

JEECG低代码

数据可视化 报表 数据大屏 报表工具 仪表盘设计

技术赋能下的能源智慧管理:MyEMS 开源系统的架构创新与应用深化

开源能源管理系统

开源 能源管理系统

塞讯科技参编,信通院《面向LLM应用的可观测性能力要求》正式发布!

塞讯科技

可观测性 可观测性认证 可观测性平台

6 个替代飞书多维表格的开源无代码数据库工具

NocoBase

数据库 开源 零代码 表格 无代码

超融合架构:破解传统 IT 困局的关键引擎

智驱前线

IT 超融合架构

意念统御,军团集结!网易伏羲以科技重铸《魔兽世界》统御之盔,用意念“控制”机器人

网易伏羲

网易伏羲 脑机接口 人形机器人 宇树科技 魔兽世界

网易灵动如何通过工程机械智能化推动新质生产力发展|《浙里数说》访谈实录

网易伏羲

网易伏羲 网易灵动 工程机械智能化 无人挖掘机 无人装载机

基于Python爬虫实战:获取财经股票数据

袁袁袁袁满

Python爬虫 爬虫案例 爬虫实战 采集股票数据

京东商品评论API秘籍!轻松获取商品评论数据

tbapi

京东API 京东商品评论API 京东数据采集 京东数据分析

区块链U卡APP的开发成本

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

超融合架构:中小企业数字化转型的利器

智驱前线

超融合架构

超融合架构:数字化转型的万能钥匙?这些场景适用!

智驱前线

超融合架构

百度搜索PC端全量上线系列AI功能  AI搜索月活已超3.22亿

极客天地

腾讯提前批是真难

王中阳Go

程序员 面试

黑龙江等保测评结果与企业的信用、资质有何关联?

等保测评

区块链Web3项目的开发流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

MyEMS:以开源创新构建企业能源管理的自主可控生态

开源能源管理系统

开源 能源管理系统

超融合:企业最关心的那些事

智驱前线

超融合

详细解析!高校行业指标体系建设与 AI 数智应用方案

袋鼠云数栈

指标体系 高校 指标建设 数字化转型‘’ 数智应用

区块链Web3开发的费用

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Galera MySQL 5.7.17 bug修复_数据库_赵博文_InfoQ精选文章