写点什么

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

评论

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

非凸招聘,只等你了

非凸科技

招聘 金融 秋招

解析淘宝商品评论API返回值中的用户互动与社交元素

技术冰糖葫芦

API Gateway API 接口 API 测试 pinduoduo API

“模”力十足!天翼云息壤一体化智算服务平台训推服务能力重磅升级!

天翼云开发者社区

云计算 大模型 天翼云

掌握IT资产发现的三个步骤

ServiceDesk_Plus

IT资产 IT资产安全 IT资产管理

解密Elasticsearch:深入探究这款搜索和分析引擎

京东科技开发者

百度网盘企业版数据快速上云,数据流转平台 CloudFlow 加速大模型训练迭代

Baidu AICLOUD

数据迁移 百度网盘 数据流转

全球首个!百度智能云4款产品率先通过大模型平台应用系统ISO/IEC 42001认证

极客天地

绿色成就+1!天翼云在“新绿杯”斩获佳绩!

天翼云开发者社区

云计算 存储 天翼云

基于LangChain手工测试用例转App自动化测试生成工具

测试人

人工智能 软件测试

为什么要使用CDN?CDN有什么优点?

Ogcloud

CDN CDN加速 CDN技术 CDN网络加速

VLDB来啦!企业上云“搭子”天翼云TeleDB数据库有话说

天翼云开发者社区

数据库 云计算 天翼云

Kyutai 开源对话模型 Moshi;李飞飞空间智能公司已筹集超过 2.3 亿美元丨 RTE 开发者日报

声网

ShareSDK 扩展业务功能设置

MobTech袤博科技

开发者

赋能企业沟通:2024年专业IM即时通讯软件的重要性不可小觑!

BeeWorks

华为Mate XT 非凡大师 大屏阅读 海量好书非凡体验尽在掌握

最新动态

smardaten无代码这么牛逼?逻辑编排不用代码!

Yan-英杰

代码 无代码 smardaten

分享3款开源、免费的Avalonia UI控件库

不在线第一只蜗牛

开源 UI

得物自建 Redis 无人值守资源均衡调度设计与实现

得物技术

数据库 redis 后端

提高预算管理问责制,打造商业伙伴关系

智达方通

企业管理 企业管理工具 财务管理 全面预算管理系统 预算管理

“创新驱动·融合发展”长三角软件产业盛会“2024南京软博会”

AIOTE智博会

软件展会 软博会 南京软博会

一种面向混合云平台基于LSTM预测模型的资源池配额方法。

天翼云开发者社区

云平台 预测模型 LSTM

EIP、VIP、RIP的区别

天翼云开发者社区

rip EIP

一文详解腾讯云可观测平台 APM 采样方案

腾讯云可观测平台

应用性能监控 腾讯云可观测平台

还在自己实现责任链?我建议你造轮子之前先看看这个开源项目

京东科技开发者

重回极简:华为如何走向全面智能化?

脑极体

AI

我在Marscode用了3天,转行成为Python程序员

Trae

Python 人工智能 程序员 AI

震撼揭秘:2024年企业最受欢迎的IM即时通讯工具全面分析!

BeeWorks

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