首页 > 数据库 >MySQL空间暴涨150G导致锁定,发生了什么

MySQL空间暴涨150G导致锁定,发生了什么

时间:2022-12-08 13:00:53浏览次数:42  
标签:150G 数据库 阿里 MySQL 空间 锁定 bug

 

背景

12月1号中午突然收到大量报警,某客户环境操作数据库大量失败,报错信息如下图所示:

这个报错我是第一次见,一时间有点无所适从,但是从字面意思来看是MySQL目前处于LOCK_WRITE_GROWTH状态,拒绝执行当前的语句,一定是MySQL出问题了。

 

初定位

我随即登录阿里云控制台查看MySQL是否有什么异常,果不其然运行状态那里提示“锁定中(空间不足)”,我根据提示链接简单阅读了阿里云关于锁定状态的解释说明以及处理措施。

 

 以下为阿里云官方内容截取,想了解更多细节的请前往推荐阅读部分第一个链接。

 

 

 

 

 

 虽说事有蹊跷,但是为了快速恢复服务,来不及深思,立即删除了一部分日志型数据,释放出来10个G左右的空间,几分钟以后数据库状态正常。

剥茧抽丝

服务恢复以后我们兵分两路,一方面联系客户扩容数据库,10G估计撑不了多长时间;另一方面我开始剥茧抽丝般的寻找程序上可能的bug,比如新上了什么功能导致存储过多的数据诸如此类。

通过阿里云监控发现11月30的存储空间占用只有300G,到了第二天中午瞬间增长了150G左右,这很不正常,感觉一定是程序的bug,询问一番以后发现昨晚并没有发版,难道是个历史bug?

 

 怎么揪出这个bug呢,我首先寻找阿里云控制台是否有表粒度的空间变化趋势图,找了一圈没找到,只有整体空间的变化趋势,似乎对排查不利,但其中一个细节引起了我的注意,请看下图。

 

 已总空间≠数据空间+临时空间+日志空间,有150G左右的空间被狗吃了?带着问题我又找到了另一张监控,可以初步解释那150G去哪了。

 

 

 

这张图中多出来一个“mysql.other.size”,有157G左右,和上面被狗吃掉的150多G高度吻合,成功引起了我的注意,但mysql.other.size到底所谓何物?

 

真相

接下来我提工单给阿里云工程师询问这一情况,一起看看专业人士的解答。

 

 

 

 

 

 

慢查居然还能导致数据库空间满,也算是弥补了我数据库知识的又一片空白。

 

看下官网的一篇“RDS MySQL临时文件导致实例磁盘空间满且出现“锁定中”状态”的相关描述(推荐阅读第二个链接)。

 

 

 

 

 

事后我们重启了数据库,临时表空间释放出来150G,随即叫停了扩容。

 

接下来需要清理一波慢查,避免悲剧再次发生。

 

推荐阅读

https://help.aliyun.com/document_detail/410115.html?spm=5176.19907426.help.108.7bba1450IcmI9j

https://help.aliyun.com/document_detail/101763.html?spm=5176.19907426.help.11.7bba1450IcmI9j#concept-nqk-bh3-3gb

 

 

 

标签:150G,数据库,阿里,MySQL,空间,锁定,bug
From: https://www.cnblogs.com/chopper-poet/p/16965784.html

相关文章

  • mysql group by 实现组内排序
    1、同一个分组中假如有三条数据,我们想要获取指定的第一条数据,作为查出来的数据2、第一步:通过时间排序,并将id拼接起来,截取第一个id,(也就是最新的一条id)selectSUBSTRING_......
  • MySQL InnoDB Cluster 恢复故障成员(数据库为5.7版本)
    问题:InnoDBCluster3个节点中,1个节点丢失,状态为:MISSING问题分析:因为发现问题比较晚。数据库配置的日志是7天循环删除的。也就是说当MISSING时间大于7天的时候,就不能直接......
  • 大数据-业务数据采集-FlinkCDC 读取 MySQL 数据存入 Kafka
    目录作用app产生各层数据的flink任务bean数据对象common公共常量utils工具类app.ods.FlinkCDC.javapackagecom.atguigu.app.ods;import......
  • centos7安装mysql6.5
    1、配置mysql6.5yum源wget-P.http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpmrpm-ivhmysql-community-release-el6-5.noarch.rpm清理yum源缓......
  • mysql的qps与tps等指标监控
    1.SQL概念StructuredQueryLanguage---结构化查询语言有数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句;数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语......
  • mysql分组取每组前几条记录(排序)
    首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效)CREATETABLE`mygoods`(`goods_id`int(11)unsigned......
  • [转]MySQL数据类型详解
    原文地址:https://www.cnblogs.com/lteal/archive/2013/03/04/2943061.htmlMySQL数据类型,可以被分为3类:数值类型、日期和时间类型以及字符串(字符)类型 方括号(“[”和......
  • linux设置mysql开机自启
    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/yylhm1125/article/details/125738283  1.......
  • MySQL
    MySQLWHERE子句我们知道从MySQL表中使用SQLSELECT语句来读取数据。如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句中。语法以下是SQLSELECT语句......
  • MYsql
    Mysql下载安装卸载配置教程Mysql下载下载之后打开安装好安装好呢可以去管理查看有没有MySQL的服务那么如何运行mysql的服务呢cmd管理员命令打开输入netst......