记一次读写分离的数据库表加字段的连锁反应

本文讲述了在没有DBA的情况下,一位工程师直接在亿级数据量的表上尝试添加字段,导致主库CPU飙升,从库同步延迟,读写压力剧增,险些造成业务系统崩溃。作者总结教训,强调对于大表的操作务必谨慎,特别是涉及读写分离的环境,提醒开发者注意避免类似风险。
摘要由CSDN通过智能技术生成

   事情是这样,数据库中有张数据量近亿级的表,由于业务原因要加1个字段,由于没有专门的DBA就有我亲自上场。。。
   一般这种事情,常规是放到晚上业务量小的时候进行,这次不知道搭错了哪根筋,想着读写分离,主库的日常压力非常低,异想天开的就开始加字段,想着观察监控,即便是CPU,内存上去了,也有足够的时间终止,不影响正常业务。
   看似一切顺利的就开始作死操作,从2点开始,一直持续到4点45分,字段终于加完了,期间CPU占用率从日常的1~3%升到了10%左右,本来觉得问题不大,只是时间问题。可万万没想到的是这只是主库完成字段添加,主库完成后从库才开始加字段,这时候从库的同步延迟直线上升,阿里云的读写分离一旦有延迟,会把所有读操作都指向回到主库,这时候主库的读写压力瞬间爬升。CPU占用率也上升到了40%左右,当时观察到主库多了很多查询语句和CPU升高,脑子嗡嗡的,如果主库的性能不足到支撑全量读写SQL,那么业务系统就要崩了,而且就算这时候再删字段也来不及操作了。。。。
   这里总结了一个教训,有大表的时候能早点分表早点分,如果亿级的表要加字段一定要慎之又慎,尤其是还挂着读写分离,一个不小心就有可能会有连锁反应。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值