写点什么

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

评论

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

玄铁VirtualZone:基于RISC-V架构的安全扩展

Roy夹馍

cpu 物联网 嵌入式开发

托管班用什么管理系统?染书CRMA,自带营销工具提升续班率

亿欧之

springboot elementui vue商城微信小程序源码(毕设)

清风

小程序 Vue 毕业设计 毕设

财经大课:看懂价格信号

石云升

财经思维 9月日更

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(上)

EMQ映云科技

RabbitMQ 物联网 IoT mqtt emq

RVB2601开发板用户指南

Roy夹馍

IoT risc-v 嵌入式开发

RVB2601开发板快速上手教程

Roy夹馍

MCU risc-v 嵌入式开发

澳鹏Appen收购Quadrant:移动定位数据业务进一步增强

澳鹏Appen

人工智能 大数据 企业 收购

平头哥剑池CDK 更新重磅来袭!三大亮点速看!

Roy夹馍

物联网 risc-v 嵌入式开发 软件模拟

Paxos理论介绍(3): Master选举

OpenIM

极光笔记丨Locust性能测试工具的使用

极光JIGUANG

软件测试 测试工具

ipfs挖矿是什么意思?ipfs挖矿靠谱吗?

ipfs挖矿靠谱吗 ipfs挖矿是什么意思

辅导班用什么管理系统?染书CRMA,课时班级信息自动罗列

亿欧之

数字人民币与智能合约

CECBC

图像之场景分类 实验研究

毛显新

人工智能 神经网络 深度学习 图像识别 PyTorch

filecoin全网有效算力突破10EiB?Filecoin挖矿现在还有机会入场吗?

区块链 分布式存储 IPFS filecoin挖矿 filecoin矿机

解析金融服务如何在区块链中建立信任?

CECBC

有道词典 Flutter 架构与应用

有道技术团队

大前端 客户端 网易有道

fil矿机8T多少钱?fil矿机多少钱一台?

FIL矿机多少钱一台 fil矿机多少钱

如何创建网上试卷?快考题|企考云,专项练习降低人工阅卷失误率

亿欧之

如何建立微信考试?快考题|企考云,轻松拥有HR在线测评系统

亿欧之

Vector向量计算技术与SIMD技术的对比

Roy夹馍

cpu IoT 芯片 risc-v

补课班用什么管理系统?染书CRMA,赋能教培机构信息化

亿欧之

在线考试系统有哪些?快考题|企考云,高频互动的培训功能免费用

亿欧之

平头哥玄铁CPU调试系统介绍

Roy夹馍

cpu risc-v 嵌入式开发 调试系统

从芯片到云全链路高效设计 一文了解YoC基础软件平台

Roy夹馍

物联网 risc-v 嵌入式开发

ipfs最新官网通知?ipfs是一场技术革命?

区块链 分布式存储 IPFS Filecoin ipfs挖矿

低代码和无代码的区别

低代码小观

低代码 开发工具 无代码 低代码与无代码区别

ipfs矿机工作原理是什么?ipfs矿机多少钱一台?

IPFS矿机多少钱一台 ipfs矿机工作原理是什么

人工智能是下一个“新生代农民工”吗?

澳鹏Appen

人工智能 大数据 AI 数据标注 训练数据

天津赛誉食品有限公司与小王庄黄金梨携手 助推文旅产业化联盟销售

InfoQ 天津

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