在 IT 從業(yè)者中,有著一群比程序員還要低調(diào)且掌管著大數(shù)據(jù)時代企業(yè)生死命門的人,他們就是傳說中的 DBA。論起 DBA 的工作職能,很多人表示這可比程序員日常復雜得多,不僅上要和應用程序打交道,下還要深入操作系統(tǒng)和硬件之中。所以當繼而談起成為一名優(yōu)秀的 DBA 是種怎樣的體驗時?不少過來人調(diào)侃道,你能明白那種刪得了庫跑不了路的酸爽感嗎?
近來,一名來自順豐的技術(shù)工程師親身經(jīng)歷告訴了我們," 對,沒錯,就是這樣的一種感覺。"。
日前,據(jù)微博知名互聯(lián)網(wǎng)資訊博主 @大佬坊間八卦爆料,順豐科技數(shù)據(jù)中心的一位鄧某因誤刪生產(chǎn)數(shù)據(jù)庫,導致某項服務無法使用并持續(xù) 590 分鐘。
來自 @大佬坊間八卦微博
后來有網(wǎng)友爆料,這位鄧某是順豐科技 IT 數(shù)據(jù)中心應用交付技術(shù)部互聯(lián)網(wǎng)產(chǎn)品運維組的 IT 運維開發(fā)高級工程師。
而事件的起因,據(jù)網(wǎng)上流傳的郵件截圖顯示:
目前順豐根據(jù)公司相關規(guī)定,已將鄧某辭退,且在順豐科技全網(wǎng)通報批評。事件一出,立即引發(fā)圈中程序員們的熱議。很多人無奈的表示,庫都刪了,不跑路干什么?記得看好地圖,搭載飛機跑路,否則或因堵車,短短幾分鐘之內(nèi)你就會被抓回了,譬如下面這位:
事實上,無獨有偶,在國內(nèi)外,刪庫事件早已不是第一次發(fā)生,相比之下,此次順豐刪庫帶來的后果還不算最為嚴重,接下來,我們將共同回顧那些年,刪的那些庫帶來了怎樣的后果?我們又該如何避免刪庫跑路事件的頻發(fā)?
01、那些年,刪過的庫
大廠說:
2017 年 2 月,GitLab 的一位系統(tǒng)管理員在給線上數(shù)據(jù)庫做負載均衡工作時,遭受了 DDoS 攻擊。在阻止了攻擊之后,運維人員發(fā)現(xiàn)了數(shù)據(jù)庫不同步的問題,便開始修復,在修復過程中,錯誤地在生產(chǎn)環(huán)境上執(zhí)行了數(shù)據(jù)庫目錄刪除命令:
sudo rm -rf
導致 300GB 數(shù)據(jù)被刪成 4.5G,GitLab 被迫下線。
2017 年 6 月,一家荷蘭海牙的云主機商 verelox.com,一名前任管理員刪光了該公司所有客戶的數(shù)據(jù),并且擦除了大多數(shù)服務器上面的內(nèi)容。
最終導致 Verelox 暫時將網(wǎng)絡下線。在發(fā)布的官方公告中,Verelox 表示一直努力恢復數(shù)據(jù),但遺憾的是,目前已丟失的所有數(shù)據(jù)可能恢復不了了。
2017 年 9 月,某 IT 大廠技術(shù)工程師幫助廣西移動進行擴容割接(即增加系統(tǒng)容量)時,不小心將 HSS 設備里面的用戶數(shù)據(jù)格式化刪除,導致廣西移動近 80 萬用戶數(shù)據(jù)丟失。
網(wǎng)友說:
與此同時,來自知乎(http://www.zhihu.com/question/58802374)的不少網(wǎng)友也為曾刪過的那些庫,大驚失色,直至現(xiàn)在仍心有余悸:
@張家考拉:
公司新來一位應屆畢業(yè)生,工作能力非常弱,什么都不會,怎么辦呢?就先讓她幫忙盤點機房設備資產(chǎn)。
就因為有個資產(chǎn)標簽看不清楚,直接把刀片服務器拔出來了,旁邊帶她的人看到,瞬間就石化了。業(yè)務系統(tǒng)中斷十幾分鐘,領導也沒說什么,就是不讓她繼續(xù)盤點了,而她,根本不知道自己闖禍了。
@土豆爸爸:
多年前(2001 年),那還是 Unix 字符界面,半夜我例行維護,刪過一個包含二十萬本圖書的庫。十分鐘自己確認出錯后,開始冒汗,胃部像是被猛打了一拳得開始痙攣,疼的我都坐不住。
好一會我去過道抽了兩根煙,才回憶起前天做了全系統(tǒng)備份,丟的數(shù)據(jù)不多!
那感覺,一輩子難忘。
@ai0by:
之前自己做的一個站,服務器是在 Vultr 上面,用戶有 1000 多,訪問量不少。某天在 Vultr 上面另開了一臺測試機器,測試完了準備刪除時刪錯了機器,把放網(wǎng)站的那臺刪掉了 ……(有必要吐槽一下 Vultr 的服務器界面,我以為新開的機器一定是最下面的那個,然后沒看直接就刪掉了,沒想到最下面的那個不是最新開的那臺?。?/p>
當時只能說非常慌張,好像在夢里一樣,滿頭大汗,只能眼睜睜看著一條提示刪除成功的消息,隨即立刻提交了一條 ticket,Vultr 告訴我已經(jīng)刪除掉的機器是不能恢復的,瞬間感覺長時間的經(jīng)營全部白費了,很難想象經(jīng)營了那么久一個失誤操作全完蛋了。
后來發(fā)現(xiàn)那臺機器之前有過備份,另開了一臺機器把鏡像恢復到新機器上面,時間是一周前,好歹算是救回來了,丟失的數(shù)據(jù)后來自己手工補上了。
刪掉的一瞬間,好多用戶來找我,我只能淡定的回復說是在維護,實際慌的要死,在問題解決差不多后,自己后背都濕透了,再也不想有第二次了,切記做好備份,切記切記!
02、那些年,跑路前,我們還可以做些什么?
和上文刪庫事件相比,不少網(wǎng)友對順豐的處理結(jié)果及制度產(chǎn)生質(zhì)疑,紛紛表示:開除了涉事工程師,順豐自身就完全沒責任?花了這么大的教訓培養(yǎng)了一位運維就這么拱手讓人了?
剖開表面,我們不由深思,順豐以辭退為名,真的能撇開其在流程問題所因擔起的責任?此次出事,好在影響尚未造成無法挽回的后果,順豐應做的不是第一時間去辭退涉事員工,而是通過該教訓來看清內(nèi)部的問題:
刪庫事件發(fā)生一方面源于工程師本人的失誤,另一方面是否體現(xiàn)了日常管理流程的松懈,及操作的不規(guī)范?
安全責任不分明,除了涉事員工,其直接上司不應擔責?
權(quán)限控制混亂,僅一名運維工程師可以直接操作數(shù)據(jù)庫?
災備恢復能力弱,事件的發(fā)生到恢復,偌大的順豐企業(yè)花費了 590 分鐘?
所以,從以上的種種問題來看,我們該如何再次避免刪庫 " 跑路 " 等事件的再次發(fā)生?
對此,在企業(yè)首先做好權(quán)限管理以及多重審核機制的同時,CSDN 也曾教諸多程序員們?nèi)绾卧?Linux 下謹慎使用 rm,避免從刪庫到跑路的悲劇發(fā)生:
還有無論是運維、DBA 還是程序員們都應該在日常 Coding 時嚴加注意操作規(guī)范,銘記 " 一失手成千古恨 " 的后果。在審查時也要做好自動容災、數(shù)據(jù)同步的步驟,最后,重要的事情說三遍,不要忘記:
備份!
【來源:新浪科技】