Mysql插入2.6亿条垃圾数据后会发生什么?

欢迎访问 陈同学博客原文

问题现象

今天下午业务人员发现某功能无响应(该功能一天前上线),技术人员初步诊断后发现是某个DB不太正常,DB为Mysql 5.7.18

登陆DB服务器后,进行检测后发现了如下问题:

innodb_trx中发现异常事务

2个事务状态为 inserting ,数据量约为 2.65亿,事务开始时间为昨晚23点

dw_repayment_monitor空间扩展到73G

事务操作的表占用空间急剧扩大

binlog占满了日志盘

binlog设置的过期时间为10天,文件分片大小为100M。/var/log/mysql下产生了大量的binlog,写满了服务器上的一块日志磁盘

CPU/内存耗尽

top命令后发现CPU全被 mysqld 占用

23G内存全部是buff/cache,内存全部耗尽

解决过程

stop问题应用

首先,紧急stop了问题应用,避免问题升级。

kill 事务对应的mysql thread

kill掉 trx_mysql_thread_id中对应的mysql thread, kill之后,show processlist 已经无法查到这两个thread.

两个事务开始进行rollback

转移binlog

将这些天的binlog转移到其他磁盘,确保mysql binlog能够继续写入

尝试处理两个rollback事务

尝试处理掉两个事务,各种折腾之后,宣告失败。

  • 与技术&业务沟通后,知晓该表数据可以自动重建。因此以root用户打算直接删除该表,但是失败
Table is locked by the server
  • 发现 innodb_force_recovery,但是不敢乱用
  • 发现rollback速度为每秒约1W条,2.6亿数据。回滚需要约7个小时,此时是下午三点多

上报风险

由于自己没有这种情况的处理经验,目前已经无法进一步处理,因此上报至了CTO,避免进一步产生风险。

简要描述情况,CTO初步检测后,给出A/B方案:

A:先等待正常回滚

B:如果无法回滚完,考虑停止Mysql. 使用备份数据启用备库

最终结果

由于时间还来得及,采用了A方案,等待DB自然回滚。接下来就是不断检测事务rollback情况,2个rollback事务历经5个小时,到晚上9点终于回滚结束。在此期间,其他同事找到了相应的程序BUG,一个存储过程中的死循环自昨晚23点开始疯狂往表中插入数据。

由于这张表目前达到73G,因此删除再重建了此表,利用程序进行数据恢复。

总结

平时虽然能处理些Mysql常见问题,但很多极端情况还是无法处理。一方面是Mysql技能深度不够,另一方面也是经验的缺失。本文仅记录本次过程,同时也积累了些mysql待学习知识点,其他思考不再撰写。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

企业内部部署IaaS经验之谈

1.虚拟机(VM)的操作系统和应用程序必须是被锁定的,同时必须使用现有的规则进行正确的配置,如来自于互联网安全中心(CIS)的指导准则。 2.确保虚拟环境安...

3307
来自专栏非著名程序员

绝对干货:供个人开发者赚钱免费使用的一些好的API接口

不久前,我写了一篇文章,名为《科普技术贴:个人开发者的那些赚钱方式》,讲了一些个人开发者接私活和自己做软件加广告的一些科普知识。可是做软件,需要服务器,需要后台...

4419
来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙回顾|性能测试

5315
来自专栏Java技术交流群809340374

最新鲜的美团现场面试41题(三面技术+HR面):Redis+Kafka+分布式

互联网特别是电商平台,阿里双11秒杀、还有12306春运抢票、以及平时各种节假日抢购活动等,都是典型的高并发场景。

7.4K0
来自专栏沃趣科技

基于Prometheus的数据库监控

作者 金 戈 沃趣科技技术专家 传统监控系统面临的问题 Prometheus的前身:Borgmon Borgmon介绍 应用埋点 服务发现 指标采集与堆叠 ...

73610
来自专栏杨建荣的学习笔记

今天琢磨的几件事情(r7笔记第74天)

今天在琢磨几件事情,也是和工作相关。 数据灾难切换的几点认识: 在unix中可能会碰到在处理网络问题时,超时时间会远远高于linux的情况,这个时候如果尝试做f...

3094
来自专栏情醉中国风

基于云安全环境的最佳实践

无论您是打算使用托管服务来处理你们组织的云安全,还是决定创建管理自己的安全项目,至少,将所需的所有信息汇总起来就可能是一项复杂的任务了。为了解决这个问题,我们想...

2419
来自专栏Java技术交流群809340374

最新鲜的美团现场面试41题(三面技术+HR面):Redis+Kafka+分布式

互联网特别是电商平台,阿里双11秒杀、还有12306春运抢票、以及平时各种节假日抢购活动等,都是典型的高并发场景。

4200
来自专栏cloudskyme

云计算的体系结构

云计算的体系结构由5部分组成,分别为应用层,平台层,资源层,用户访问层和管理层,云计算的本质是通过网络提供服务,所以其体系结构以服务为核心。 如下图: ? 1,...

2.6K11
来自专栏Java编程技术

乐观锁原理与实战演练

最近在做一个简单审批流程的项目,由于只有固定二级审批所以没有工作流组件,然后就遇到一个审批节点捞单时候,多个人同时审批时候如何保证业务正常运行的问题,我采用的就...

1092

扫码关注云+社区

领取腾讯云代金券