写点什么

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:181046

评论

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

观测云产品更新 | SIEM、监控、基础设施、异常追踪等

观测云

产品迭代

论文解读 - 统一的多模态理解和生成模型综述(上)

合合技术团队

人工智能 算法 #大数据

纯前端实现图片伪3D视差效果

vivo互联网技术

前端 WebGL pixi.js

百亿厂补 “粽”情钜惠 捷途汽车端午大促活动限时开启

科技热闻

“全球金牌敏捷课程” · 6月10-12日CSM认证课程

ShineScrum

直播APP的开发框架

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

直播app 软件外包公司 APP外包公司

户外防水租赁LED显示屏报价与选择攻略

Dylan

商业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

BeeWorks:云盘存储与在线编辑,开启高效办公新时代

BeeWorks

即时通讯 IM 企业级应用

KADC 2025,筑起行业智能化的算力屏障

脑极体

AI

CST软件PCB热仿真2--直流热源(IR drop)+ 元件热源

思茂信息

cst CST软件 CST Studio Suite

Veeam Backup & Replication 13 之初见 - 基于 Linux 和 Web 控制台

sysin

veeam

低代码开发模式下的应用交付效率优化:拖拽式交互机制研究

JeeLowCode低代码平台

低代码 低代码开发 低代码平台 低代码前端 低代码,

im即时通讯软件BeeWorks:流程审批助力企业高效管理

BeeWorks

即时通讯 IM 私有化部署

【 HGDD 荣耀开发者日】系列活动丨荣耀应用市场联合维科网,推动应用分发“数智化”赋能

荣耀开发者服务平台

生态 荣耀开发者服务平台 应用市场 荣耀HONOR HGDD

日本房产中介龙头为何放弃 Salesforce,转向开源平台 NocoBase?

NocoBase

开源 CRM Salesforce 人力资源管理系统 日本房地产

Windows 10 version 22H2 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows 10

618来袭!强性能、快散热、高颜值,搭载英特尔酷睿Ultra处理器的华硕笔记本带来非凡体验

E科讯

直播APP的技术难点

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

直播app 直播APP开发 软件外包公司

天翼云,用息壤智能体打通AI“最后一公里”

脑极体

AI

工程级提示词攻防,注意这5点

阿星AI工作室

产品 AI 大模型 AI教程 提示词

华为云云应用引擎CAE,重塑企业AI Agent最佳运行态

华为云开发者联盟

华为云

【干货】手把手教你把Trae改造成你的专属AI写作助手

田威AI

AI AI工具 AI工具推荐

618购机选什么?七彩虹带来全能王者iGame M15 Origo和旗舰强者iGame M16 Origo

E科讯

Veeam ONE 13 之初见 - Web 控制台和 Veeam 监控的未来

sysin

veeam

Windows 10 on ARM, version 22H2 ARM64 中文版、英文版下载 (2025 年 5 月更新)

sysin

Windows 10

数据仓库 vs 数据库:核心区别与应用场景全解析

镜舟科技

数据库 数据仓库 OLAP OLTP StarRocks

2025 BOE(京东方)全球供应伙伴大会隆重举行 共筑全球显示产业共生共赢新格局

科技热闻

联想个人云轻松打造私有云!贝锐花生壳内网穿透实现高速远程访问

科技热闻

直播APP的开发流程

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

直播app 软件外包公司 APP外包公司

东方通&openEuler Meetup走进高校 携手年轻开发者解锁云原生开发效率变革

科技热闻

Windows 11 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 5 月更新)

sysin

windows 11

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