整理自:Solidot、维基、Twitter、微博
2月1日凌晨,源码托管平台GitLab.com发生了用著名的删除命令删除产品数据导致网站全面下线的事故,GitLab通知,称一位身处荷兰的疲惫系统管理员在进行数据库复制过程中不小心在一台错误的服务器上删除了一个目录,rm -rf 删除了一个包含300GB实时产品数据的文件夹,在取消rm -rf删除命令后该文件夹只剩下4.5GB 数据。而最近的数据还是在6小时前备份的。
这起事故影响了问题和合并请求数据库,但没有影响git仓库数据库。GitLab通过Google Doc和monitor.gitlab.net实时报告数据恢复进展。它表示自己部署的五重备份/复制技术都不可靠。
该系统管理员的心情应该就是这样子:“从删库到跑路”
微博热评:
@黄家海兵:看来生产环境真的要改造一下rm -rf了,让它只能删空目录,如果要删目录,要用rm -f先删文件再删目录。看来是要把rm改造一下了:先把rm改个名字,再写个rm的脚本替换,脚本里面做判断,如果有人执行rm -rf,就调用rmdir去删除,这个只能删空目录。如果是其它参数就调用改过后的rm去执行。
@左耳朵耗子:这样的故障,我在亚马逊遇过一次,一个新员工错误连了线上环境,rebuild了线上数据库……。在阿里遇过至少4次这样的重大故障,都很有意思,可惜不能公开分享
@胡晓勤:看来备份管理员没做过灾难恢复演练啊,如果定期做了,就一定能发现备份方式和策略的问题。不过,在物理服务器环境下的恢复演练又慢又麻烦,没人愿意做,在虚拟化环境下就快多了。 很好奇gitlib什么虚拟化,做虚拟机备份就简单多了,出了问题,用瞬时恢复,数分钟就恢复。看样子gitlib还在物理环境下。
@VaJoy:rm是个很可怕的指令啊,想当年我是用SQL指令不小心delete了全部数据库,但好歹还留着备份文件可以恢复
后续关注:
GitLab 通过 Google Doc ( https://docs.google.com/document/d/1GCK53YDcBWQveod9kfzW-VCxIABGiryG7_z_6jHdVik/pub) 和 monitor.gitlab.net(http://monitor.gitlab.net/dashboard/db/postgres-stats?panelId=10&fullscreen&from=1485871271986&to=now ) 实时报告数据恢复进展。
目前 GitLab 正在YouTube上直播恢复进展:https://www.youtube.com/c/Gitlab/live
●本文编号69,以后想阅读这篇文章直接输入69即可。
●输入m可以获取到文章目录
黑客技术与网络安全
推荐:《15个技术类公众微信》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。