Blog
Blog copied to clipboard
一次线上故障的反思
过去好几天了,但是觉得还是有必要分享下这个傻逼的错误。
时间
五一之后的第一天。
经过
系统遗留的一个后门接口威力无比,可以执行任何sql,包括删除所有记录,更新所有记录。
有一天,我掉进了这个坑,一切发生的毫无征兆,意识到的那一刻头脑一片空白。
为了头方便省事,为了修复一个问题,想直接走后门修改掉,so easy。

复制-粘贴-执行,操作行云流水,不假思索。然后点击相关页面,一片空白,才意识到刚才执行的sql超出了预期,紧接着是用户的反馈。。。。OMG
傻逼!执行了一个没有加where条件的update语句。。。
第一反应,联系DBA,看能不能全表恢复,才知道数据恢复并没有想象中的那么快速,这种方式恢复可能需要XXX天!!
幸运的是,这张DB表对应的有离线表,才迅速通过其他方式把数据恢复了,业务不可用时间1-2小时。
总结
吃一堑长一智,我觉得在这个过程中暴露了很多的问题。
- 使用后门,而且还没有找人review,意识就有问题
- 生产变更不走标准流程,找死
- 执行sql,至少先在测试环境跑一下吧,直接干到线上了,咋想的?
无耻的笑了,因为我之前公司系统也有这样的后面,也出过事情,那个同事被开了