Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一次线上故障的反思 #22

Open
vonzhou opened this issue May 20, 2020 · 1 comment
Open

一次线上故障的反思 #22

vonzhou opened this issue May 20, 2020 · 1 comment

Comments

@vonzhou
Copy link
Owner

vonzhou commented May 20, 2020

过去好几天了,但是觉得还是有必要分享下这个傻逼的错误。

时间

五一之后的第一天。

经过

系统遗留的一个后门接口威力无比,可以执行任何sql,包括删除所有记录,更新所有记录。

有一天,我掉进了这个坑,一切发生的毫无征兆,意识到的那一刻头脑一片空白。

为了头方便省事,为了修复一个问题,想直接走后门修改掉,so easy。

image

复制-粘贴-执行,操作行云流水,不假思索。然后点击相关页面,一片空白,才意识到刚才执行的sql超出了预期,紧接着是用户的反馈。。。。OMG

傻逼!执行了一个没有加where条件的update语句。。。

第一反应,联系DBA,看能不能全表恢复,才知道数据恢复并没有想象中的那么快速,这种方式恢复可能需要XXX天!!

幸运的是,这张DB表对应的有离线表,才迅速通过其他方式把数据恢复了,业务不可用时间1-2小时。

总结

吃一堑长一智,我觉得在这个过程中暴露了很多的问题。

  • 使用后门,而且还没有找人review,意识就有问题
  • 生产变更不走标准流程,找死
  • 执行sql,至少先在测试环境跑一下吧,直接干到线上了,咋想的?
@newhcw
Copy link

newhcw commented Jun 24, 2020

无耻的笑了,因为我之前公司系统也有这样的后面,也出过事情,那个同事被开了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants