互联网科技@IT·互联网程序员

gitlab误删数据库,为了不以后背锅,这几点你应该知道!

2017-02-07  本文已影响214人  林炎小宝

事件回顾


一个gitlab公司的同学, 为线上的数据库进行负载均衡的操作。 碰巧这个时候,被OODS工具,导致数据库各种数据飙高。由于这个异常的攻击导致某个备用的数据库落后于主库4GB。 在尝试了多个方法无效之后,原来希望启动一个新的实例,结果错误的删除了整个实例。最后通过手动复制代码,花了6个小时,将所有被删除的数据复制了回来。

说人话,就是一个工程师,由于在一次日常工作中,由于被攻击和长时间的加班导致脑子不清楚, 错误的将一个备份数据文件删除了。差一点从删库到跑路成为现实。

注:GitLab 是世界上最著名源码代管服务网站

事件问题分析

我觉得这个事件是一个小概率的事件凑在一起才能发生的。因为gitlab号称有5个备份机制,但是在这一次事件中全部失效。但是小概率事件的发生肯定有原因的。

公司系统如何更好避免类似问题

多机房备份

对于任何一个分布式的系统来说, 数据备份,数据可用都是构建一个高可用的系统的基础。

减少黑屏操作


很多程序员, 特别是新人程序员, 会觉得在黑色的命令行屏幕上敲敲命令行完成操作是一件很酷的行为。 但是我想说, 这绝对是电影看多了。直接使用命令行操作,虽然效率高, 但是存在很多不可控的风险。所以现在很多公司都必须有自己的运维系统,通过点击系统(白屏)来完成相关的操作(最少删除的时候, 会有一个弹出那个提示), 避免了手动敲击命令行(黑屏)之类的相关操作。

少加点班,减少疲劳驾驶


据不完全统计, 用于疲劳驾驶导致的事故排名很高。同理,由于批劳操作, 肯定会存在很多的误操作,因为联系工作了十多个小时之后, 很有可能头脑不清晰,随便l乱操作就出错了。 更合理的是, 对于运维同学能够通过倒班的形式而不是持续加班的形式, 可以解决不少的问题。

个人数据备份

结语

小心使得万年船,对于任何的线上系统都要保持足够的敬畏, 避免用户出现各种意外, 是一个工程师的基本素质。 同时持续使用系统和产品而非人肉的操作来代替运维的工作,可以少点背锅的人。
版权申明 本文为林炎小宝原创,转载请联系

上一篇下一篇

猜你喜欢

热点阅读