MySQL空间暴涨150G导致锁定,发生了什么
![](https://img2023.cnblogs.com/blog/846817/202212/846817-20221208124138138-472752997.png)
背景
12月1号中午突然收到大量报警,某客户环境操作数据库大量失败,报错信息如下图所示:
这个报错我是第一次见,一时间有点无所适从,但是从字面意思来看是MySQL目前处于LOCK_WRITE_GROWTH状态,拒绝执行当前的语句,一定是MySQL出问题了。
初定位
我随即登录阿里云控制台查看MySQL是否有什么异常,果不其然运行状态那里提示“锁定中(空间不足)”,我根据提示链接简单阅读了阿里云关于锁定状态的解释说明以及处理措施。
以下为阿里云官方内容截取,想了解更多细节的请前往推荐阅读部分第一个链接。
虽说事有蹊跷,但是为了快速恢复服务,来不及深思,立即删除了一部分日志型数据,释放出来10个G左右的空间,几分钟以后数据库状态正常。
剥茧抽丝
服务恢复以后我们兵分两路,一方面联系客户扩容数据库,10G估计撑不了多长时间;另一方面我开始剥茧抽丝般的寻找程序上可能的bug,比如新上了什么功能导致存储过多的数据诸如此类。
通过阿里云监控发现11月30的存储空间占用只有300G,到了第二天中午瞬间增长了150G左右,这很不正常,感觉一定是程序的bug,询问一番以后发现昨晚并没有发版,难道是个历史bug?
怎么揪出这个bug呢,我首先寻找阿里云控制台是否有表粒度的空间变化趋势图,找了一圈没找到,只有整体空间的变化趋势,似乎对排查不利,但其中一个细节引起了我的注意,请看下图。
已总空间≠数据空间+临时空间+日志空间,有150G左右的空间被狗吃了?带着问题我又找到了另一张监控,可以初步解释那150G去哪了。
![](https://img2023.cnblogs.com/blog/846817/202212/846817-20221208124630715-209427208.png)
这张图中多出来一个“mysql.other.size”,有157G左右,和上面被狗吃掉的150多G高度吻合,成功引起了我的注意,但mysql.other.size到底所谓何物?
真相
接下来我提工单给阿里云工程师询问这一情况,一起看看专业人士的解答。
慢查居然还能导致数据库空间满,也算是弥补了我数据库知识的又一片空白。
看下官网的一篇“RDS MySQL临时文件导致实例磁盘空间满且出现“锁定中”状态”的相关描述(推荐阅读第二个链接)。
![](https://img2023.cnblogs.com/blog/846817/202212/846817-20221208124709905-1811994426.png)
事后我们重启了数据库,临时表空间释放出来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
相关文章
- 模拟大脑功能,这个AI模型真正实现像人一样持续学习
- Redis 生产架构选型对比,一文整治选择困难症
- 十个超赞的C语言开源项目,强烈推荐!
- 六张图告诉你 Kafka 是怎样做数据采集和统计的!
- 移除ImageNet标签错误,模型排名发生大变化
- 仅用1/4数据量还原真人语音100%细节,火山语音上新超自然对话语音合成技术!
- 最近大火的Diffusion Model,首篇扩散生成模型综述!
- 扩散模型爆火,这是首篇综述与Github论文分类汇总
- 一文浅析自动驾驶大数据管理
- 哈佛大学搞出声波传数据芯片,抗干扰能力更强,适用于量子计算等新兴领域
- 缓存系列:缓存一致性问题的解决思路
- 成都程序员分析,核酸系统一崩再崩,到底谁的锅?
- 那些选Redis来做MQ的人,是水平欠缺么?
- 基于AI算法的数据库异常监测系统的设计与实现
- 图灵奖得主Jack Dongarra:高性能计算与AI大融合,如何颠覆科学计算
- 一文读懂自动驾驶系统中的边缘计算技术
- 自动驾驶硬件预埋之后,车企如何实现数据闭环?
- 缓存系列:缓存雪崩的解决思路
- 百度段润尧:有近70%的大型企业希望能布局量子计算
- 心之所向:从DBA到开源创业者的转型之路 | 技术人访谈录