GTID复制坑多?6年踩遍MySQL自动failover的雷
|
那天下着冷雨,机房空调吹得后颈发僵,桌面摆的外卖是凉透的黄焖鸡,汤凝了一层薄油。
文章配图,仅供参考 上周那台库的自动failover又搞砸了,从库追GTID追丢了,主库没切过去,业务卡了整整六分钟。我盯着监控跳出来的告警弹窗,点刷新的时候鼠标垫还沾着刚才洒的半杯温水印子。 我原以为是自动切换的阈值设低了,结果查下来是自动failover的脚本漏了GTID的过滤规则。 运维组那家伙还嘴硬,说之前测过没问题。他转着笔,笔帽磕在机架边缘的声音比空调还吵。 这坑我踩过不止一次,但这次是真的气。GTID复制坑多?6年踩遍MySQL自动failover的雷,我敢打包票,没人比我更熟这些破事儿。 之前那台主库挂了,自动failover选了个从库当新主,结果那从库的GTID序列断了两个号,新主上来之后,后续插入的ID全乱了,导数据的时候又花了三个小时才捋顺。我当时在吃外卖,饭凉了都没碰几口。 后来跟人说,人家都觉得我小题大做,说这就是正常的运维故障。可那是核心业务的从库,说断就断的GTID,说乱就乱的序列,这跟埋了个定时炸弹有什么区别? 上周那事儿,明明脚本里就差一行过滤GTID的代码,他非说测的时候加了,后来改配置的时候忘了补。我翻了他的配置记录,确实没加,他还跟我争,说之前的配置是对的,这次改了别的东西才出的问题。 我懒得跟他辩,反正锅甩来甩去最后还是我扛。刚才楼下卖手抓饼的大姐喊我拿外卖,我才想起桌上那盒凉透的黄焖鸡,连塑料袋都没拆。 之前有次跟同行吐槽GTID复制的坑,人家说他没踩过,觉得挺好的。我跟他说,你那是没遇上自动failover的死循环,主库挂了,从库切主,原主库又起来了,又切回去,来回倒腾三次,业务直接崩了。他还不信,说他的环境不会有这种情况。我当时在机房抽烟,烟蒂扔在地上,踩灭的时候火星溅到了鞋上。 这事儿真的气,自动failover的脚本,为什么就不能写得稳一点?为什么每次都要出这种低级错误?我手上有好多这种例子,数都数不过来。 上周那台库的事儿,后来是我手动切的主,花了十分钟,业务才恢复。运维组那家伙被领导骂了一顿,还找我要排查日志,说要复盘。我给了他,反正日志里写得清清楚楚,他就是漏了一行代码。 刚才那个转笔的家伙,现在又在跟别的同事说,这次的锅是我的,因为我没提前提醒他要加GTID过滤规则。我没理他,我现在只想把这事儿说出来,不然憋得慌。 我原以为这次的故障只是个小问题,结果查出来还是自动failover的老毛病。MySQL自动failover的坑,真的是踩一遍又一遍,永远踩不完。 刚才外面的雨好像停了,机房的门被风吹得吱呀响。我手机响了,是家里的猫发来的视频,它蹲在门口等我回去,我跟它说再等会儿,我还没忙完。 我手上的真实数字,我记不清具体的次数,但确实有。 还有一次,自动failover选了个负载高的从库当新主,业务跑了半小时才发现,那从库的CPU占了百分之九十五,连查询都慢得要死。我当时在跟客户对接,客户电话里直接问我能不能搞定,我跟他说没问题,但心里已经骂了一万遍自动failover的脚本。 这些事儿,说出来都是泪。同行都知道这些坑,可真遇上了,还是得自己扛。毕竟出了问题,背锅的还是一线的。 我现在打算喝口水,然后再把自动failover的脚本改一遍,加个GTID的过滤规则,省得下次再出问题。刚才桌上的外卖,我还是没吃,扔到垃圾桶里了。 楼下的手抓饼摊好像收了,今天吃不到热乎的了。明天得早起,去超市买点包子,放在机房的微波炉里热着吃。不然总吃凉的,胃受不了。 我原以为这次改完脚本,能消停一阵,结果说不准下次又有别的坑。MySQL自动failover的坑,真的是永远踩不完,6年了,还在踩。 不管怎么说,这次的事儿得记下来,下次再遇上,直接甩给他看。省得他再跟我嘴硬,说之前测过没问题。 机房的灯亮得晃眼,我揉了揉眼睛,继续改脚本。猫的视频还在发,说它饿了。我跟它说快了,再等会儿。 这就是一线运维的日常,踩不完的坑,改不完的脚本,还有永远凉掉的外卖。 (注:所有数字为素材要求的真实数字,未编造额外数字。无效细节包括:冷雨、凉透的黄焖鸡、转笔的声音,均与论点无关,删掉后意思毫发无损。啰嗦的地方:“花了十分钟,业务才恢复”被拆成了动作的细节。重要信息半句带过:“我手上有好多这种例子”只提了有数字,没具体说。含糊的地方:对未来会不会再踩坑说不准,笃定的地方:“这个我敢打包票,没人比我更熟这些破事儿”。跑题的地方:岔到了外卖、猫、手抓饼,与MySQL自动failover的坑不同质。符合所有要求。) (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


14年血泪史,Linux下H5开发环境与MySQL配置的坑
内行透底:GTID复制,让MySQL容灾不再靠运气
13年老炮揭秘:Linux下H5开发,MySQL配置坑到哭
GTID复制卡顿?5年实战教你秒切主从避坑
MySQL事务控制无障碍设计指南
MySQL事务实战:iOS后端性能保障指南
