Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第 57 期:MySQL 清理 undo log 居然用了 10 个小时

第 57 期:MySQL 清理 undo log 居然用了 10 个小时

作者头像
爱可生开源社区
发布于 2024-09-14 10:57:27
发布于 2024-09-14 10:57:27
12400
代码可运行
举报
运行总次数:0
代码可运行

目前,ChatDBA 还在最后的准备阶段,会尽快跟大家见面。想预约试用的朋友,可以扫码文末的 预约试用 二维码或点击 原文链接。我们正在对 DBA 群体试用大模型的情况进行调研,这对我们打磨 ChatDBA 的使用体验非常重要。

下面让我们正式进入《一问一实验:AI 版》的第 57 期。

问题

undo log 长时间处于清理状态导致备份失败

问题现象:有客户反映有 3 套 MGR 环境全备失败,MySQL 版本为 8.0.18 ,Xtrabackup 版本为 8.0.9 。报错信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xtrabackup: Generating a list of tablespaces
Directories to scan '.;./;.'
Scanning './'
Completed space ID check of 2 files.
Allocated tablespace ID 12 for zxc/a, old maximum was 0
Undo tablespace number 1 was being truncated when mysqld quit.
Cannot recover a truncated undo tablespace in read-only mode
xtrabackup: error: xb_load_tablespaces() failed with error code 57

实验

1. 将问题丢给 ChatDBA。

我们先把这个问题丢给 ChatDBA,让他看下具体出了什么问题。

可以在爱可生开源社区 B 站或视频号查看本期完整操作视频。

上图为本次问题生成的流程分析画布,展示 ChatDBA 对此问题的排查逻辑。

2. ChatDBA 问答过程

第一轮交互

首先将问题输入给 ChatDBA,ChatDBA 首先根据此问题会生成初步的参考结果,同时还会生成对应的检索关键词以及进行相关 Bug 的检索。针对这个问题 ChatDBA 还需要收集相关的错误日志来供下一步分析,同时还给到了一些潜在的操作。

第二轮交互

然后我们给到 ChatDBA 对应的错误日志,ChatDBA 根据错误日志首先确认是由于 InnoDB 尝试访问丢失的 tablespace 导致的问题,同时给到了对应的解决方案。

3. 实验总结。

在该问题中,通过排查发现 undo log 过了 10 个小时依然没有清理完,正常情况下不会出现该情况,而是由于参数 super_read_only 触发的 bug 导致的。可以通过调大 innodb_max_undo_log_size 参数,undo log 大小达到阈值前被 purge 掉,这样空间可以重用,很难达到阈值,所以不会触发 undo log truncate,所以也就不会触发 bug 导致问题。

问题原文:《故障分析 | undo log 长时间处于清理状态导致备份失败

第三方大模型对比:ChatGPT-4o

因为在问题中给到了版本的信息,所以 ChatGPT 就会往版本的方向上引导,同时也给出来一些解决方案但是粒度较为粗糙。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱可生开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
故障分析 | undo log 长时间处于清理状态导致备份失败
有客户反映有 3 套 MGR 环境全备失败,MySQL 版本为 8.0.18 ,xtrabackup 版本为 8.0.9 。报错信息如下:
爱可生开源社区
2021/11/11
1.4K0
故障分析 | undo log 长时间处于清理状态导致备份失败
第 56 期:为什么不建议关闭 MySQL 严格模式?
社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。
爱可生开源社区
2024/09/14
1720
第 56 期:为什么不建议关闭 MySQL 严格模式?
第 54 期:MySQL Too many open files 报错
社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。
爱可生开源社区
2024/09/14
1160
第 54 期:MySQL Too many open files 报错
Mysql的redo和undo日志
(记旧值)undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name=‘B’ 修改为Name = ‘B2’ ,那么undo日志就会用来存放Name='B’的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。
mingjie
2022/05/12
4660
Mysql的redo和undo日志
技术分享 | undo 太大了怎么办
有用户在使用 MySQL5.7 的数据库时,遇到 undo 暴涨情况,经排查存在一条慢 SQL 执行了上万秒仍没有结束,导致后续事务产生的 undo 不能清理,越来越多
爱可生开源社区
2022/07/04
8090
MySQL 8.0.21中UNDO截断的改进
UNDO表空间可以在MySQL 8.0中隐式或显式截断。两种方法使用相同的机制。当UNDO表空间截断完成时,可能导致非常繁忙的系统上的定期停顿。此问题已在MySQL 8.0.21中修复。
MySQLSE
2020/09/28
1.4K0
MySQL · 特性分析 ·MySQL 5.7新特性系列三无标题文章
前言:MySQL5.7新特性之一介绍了一些新特性及兼容性问题,MySQL 5.7新特性之二介绍了临时表的优化和实现。 这期我们一起来学习下undo空间管理,重点介绍truncate功能。 1. 背景 InnoDB存储引擎中,undo在完成事务回滚和MVCC之后,就可以purge掉了,但undo在事务执行过程中,进行的空间分配如何回收,就变成了一个问题。 我们亲历用户的小实例,因为一个大事务,导致ibdata file到800G大小。 我们先大致看下InnoDB的undo在不同的版本上的一些演进
挑战者
2018/06/29
1.1K0
【MySQL系列】- 浅析undo log
MySQL事务特性之一就是要保证原子性,一组SQL要么全部成功、要么全部失败。当事务进行过程中,如果出现失败或者异常情况要进行回滚,回到之前最初的样子,要这样实现就要需要把之前的数据记录下来。
索码理
2022/09/20
7400
【MySQL系列】- 浅析undo log
深入理解MySQL事务日志-Undo Log
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
绿水长流z
2025/01/03
1420
深入理解MySQL事务日志-Undo Log
MySQL redo与undo日志解析
前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍。相对于其他几种日志而言, redo log 和 undo log 是更加神秘,难以观测的。本篇文章将主要介绍这两类事务日志的作用及运维方法。
MySQL技术
2020/09/01
6870
MYSQL 8 UNDO 表空间 你了解多少
UNDO LOG 的主要目的是完成事务回滚和MVCC 多版本控制中的读取过去事务的问题。
AustinDatabases
2022/12/12
1.4K0
MYSQL  8 UNDO 表空间  你了解多少
了解一些MySQL的Undo Log基础知识
最近碰到MySQL上一个和回滚相关的问题,还需要了解其中的一些机制,尤其是Undo,GreatSQL社区的这篇文章《图文结合带你搞定MySQL日志之Undo log(回滚日志)》,能让我更多了解MySQL的Undo机制,借鉴一下。
bisal
2022/11/14
6380
了解一些MySQL的Undo Log基础知识
第 53 期:MySQL 创建了用户却无法登陆
社区王牌专栏《一问一实验:AI 版》全新改版归来,得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询,表达了想试用体验 ChatDBA 的意愿,对此我们表示感谢 🤟。
爱可生开源社区
2024/09/14
1970
第 53 期:MySQL 创建了用户却无法登陆
MySQL 8.0 表空间机制
墨墨导读:数据是以表空间来维护和存放的。在表空间中包含数据,结构,索引等信息,如何有效使用表空间对于MySQL来说非常重要。
数据和云
2021/03/30
3.4K0
MySQL 8.0 表空间机制
MySQL面试宝典-文件篇
读取顺序:/etc/mysql/my.cnf>/etc/my.cnf>~/.my.cnf
CRMEB商城源码
2022/06/17
5880
MYSQL 8 的参数到底 UP DOWN 了那些
mysql8 是早早晚晚都的上的版本,早上会让开发欣喜,因为很多不支持的功能都开始支持,而尤其是MGR 方面的完善和物理复制的插件等等也是D们期待的。晚上也是有道理的,查询的速度估计会让继续使用MYSQL.5.7的感到欣慰。
AustinDatabases
2019/12/16
8250
MySQL innodb_undo_tablespaces相关参数
摘录自:http://gfsunny.blog.51cto.com/990565/1566683
保持热爱奔赴山海
2019/09/18
2K0
MySQL innodb_undo_tablespaces相关参数
慢sql导致xtrabackup备份关闭表等待从而造成主从延迟
可以看出是从内部的一个ip上用dev_read 用户连接到备库上执行的 查询导致数据库备份拷贝完数据文件后FLUSH NO_WRITE_TO_BINLOG TABLES加锁处等待状态(waiting for table flush)
wangwei-dba
2021/02/02
2.1K2
慢sql导致xtrabackup备份关闭表等待从而造成主从延迟
xtrabackup8.0.25 备份恢复MySQL server 8.0.25
1.安装xtrabackup工具版本为8.0.25-17 https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum install percona-xtrabackup-80 [root@ck1 data]# xtrabackup --version xtrabackup: recognized server arguments: --datadir=/var/lib/mysql xtrabackup version 8.0.25
wangwei-dba
2021/06/21
1.4K0
MYSQL MVCC 实现 与 UNDO 的注意事项
MVCC mulit version concurrency control , 在每个传统数据库上基本上都有实现,最近突然问了自己一句,MYSQL 是怎么实现的这个功能,好像明白又说不清,那自己就来复习一下,MYSQL 到底是怎么来完成这个功能的。
AustinDatabases
2021/06/10
5160
MYSQL  MVCC 实现  与 UNDO 的注意事项
相关推荐
故障分析 | undo log 长时间处于清理状态导致备份失败
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验