自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

新來的實習生不小心刪庫了,嚇得我虎軀一震!

運維 數(shù)據(jù)庫運維
昨天下午看一篇程序員的搞笑文章,看到了刪庫跑路的段子,然后想起了自己曾經的經歷,于是就想寫寫了。

昨天下午看一篇程序員的搞笑文章,看到了刪庫跑路的段子,然后想起了自己曾經的經歷,于是就想寫寫了。 

[[313731]] 

圖片來自 Pexels

記得是發(fā)生在 2013 年,具體日期記不清了。那時候,我們的存儲系統(tǒng)已經成功在全部門鋪開了,當時我們正準備著手進行第二輪的優(yōu)化。

相比前面階段,我們的壓力已經小了很多,因為已經完成了最關鍵的 KPI, 我們可以有規(guī)劃,有時間地慢慢做優(yōu)化了。

那天晚上,我本著想 22 點就走的,想回去看部電影,畢竟太久沒看了。不過正要走的時候,被 Leader 拉住,他跟我討論起了存儲冷備的問題。

熱備我們已經解決的不錯了,業(yè)務的可用性因此得到很大的提升,冷備是為了解決業(yè)務上的問題,比如有人不小心寫了個 Bug 把數(shù)據(jù)給刪了,便可以從冷備的數(shù)據(jù)中恢復回來。

我們討論得很投入,方案也慢慢清晰了,不知不覺已經 23 點了,覺得太晚了,就約定明天再聊。

我關了顯示器,正準備離開的時候,隔壁團隊的 D 帶著新人 J 跑了過來,很慌張地樣子。

他拉住了我,對我說:“你們存儲系統(tǒng)的數(shù)據(jù)可以恢復嗎?”

我有點懵:“什么意思?容災(熱備)出問題了嗎?”

D 答到:“不是,我們一個實習生的代碼有 Bug , 把業(yè)務 G 的核心數(shù)據(jù)全刪了!”

“啊!” 我吃驚道。

剛好我 Leader 也在,他走過來,“剛剛我們還在討論冷備的事情,就是為了應對這種情況的,不過還沒開始搞呢!” 他說道。

“那怎么辦? 有沒有其他辦法可以恢復數(shù)據(jù),要不整個業(yè)務就完蛋了,那是最核心的數(shù)據(jù)!” D 驚慌地說道。

“讓我們想想 !” 我轉過身就跟我的 Leader 討論了起來。

討論了不到十分鐘,就想到一個辦法。

因為我們的存儲采用的是 BitCask 的模型,刪除操作只是在對應的數(shù)據(jù)里面做了一個標記,沒有真正刪除,真實的刪除會在業(yè)務低峰期,數(shù)據(jù)回收的時候才進行。

也就是說,只要執(zhí)行數(shù)據(jù)回收之前,我們就有可能把數(shù)據(jù)撈出來做恢復。

但方案執(zhí)行起來有很多需要注意的細節(jié),而且有比較大風險,于是就具體的細節(jié),我們又討論了二十來分鐘。

那時候時間已經是 00:30 了。

一切敲定后,我登錄上了他們業(yè)務的機器,看配置,數(shù)據(jù)回收的時間是凌晨 3 點,我趕緊將配置改到了中午 12 點,為接下來的恢復爭取時間。

我跟 D 解釋了一番,并告知他,可以從未被回收的舊文件里面恢復數(shù)據(jù),不過因為第一次遇到這種情況,我需要寫個新的工具把舊文件的數(shù)據(jù)撈出來,然后 D 那邊也需要配合寫一個工具,將讀出來的數(shù)據(jù),從業(yè)務接口面寫回去。

D 聽到,仿佛得到拯救一般,連忙道謝!之后就一些細節(jié),我們又進行了一番討論。

一切敲定,大家便各自忙了起來。我也立馬帶上我的耳機,吭哧吭哧寫起了代碼。所幸工具的邏輯不是特別復雜,不到一小時就寫完了。

我自己驗證了幾遍,可以正確的將數(shù)據(jù)從舊文件中讀出來。這時候,已經是凌晨 2 點了。

我跑去了他們的座位,他們那邊的工具也準備好了。

于是我們拿了一臺機器,準備合起來跑一遍工具,做一次全流程的驗證。D 執(zhí)行了這個操作,看著黑底白字的屏幕上打出的一行行 log , 我們都屏住了呼吸,生怕看到 “Error” 的字樣!

所幸,整個過程沒有任何報錯,我們又找了一個舊工具做了一次數(shù)據(jù)讀取的驗證,以確?;謴偷臄?shù)據(jù)是正確的。

當看到最終結果的那一刻,我們終于松了一口氣,整個方案是可行的,可以正確的恢復數(shù)據(jù)。這時候,時間已經到了凌晨 3 點多。

此時放松的心,又緊繃了起來。

因為有數(shù)據(jù)的業(yè)務機器有上百臺,我們必須在凌晨 5 點前完成全部數(shù)據(jù)的恢復,要不就會影響到用戶的正常訪問了。

我們又立馬投入方案的討論中。很快敲定了,單機多進程,多機并發(fā)跑的方案。

方案的執(zhí)行,需要寫些并發(fā)的 Shell 腳本。我們 3 人又趕忙跑到了運維大神 A 座位,他已經了解事情的前因后果,我們就執(zhí)行方案跟他做了進一番的討論,敲定后,他立馬就寫起了 Shell 。

十多分種后,兩個 Shell 腳本都搞定了,A 做了一次驗證,一切符合預期。

在準備開跑前,我們又討論了異常的應對情況,需要監(jiān)控的關鍵數(shù)據(jù)和曲線。這時候時間已經接近 4 點了。

“時間不多了,跑吧!”, 我們異口同聲道。

D 和他的實習生也跑回了座位去看業(yè)務監(jiān)控,我在運維大神 A 旁邊看著他的操作和監(jiān)控。

很快,一百多臺機器上的自動化腳本和工具全部跑了起來,我們來回切換,看機器的負載和業(yè)務的曲線,一切都在預期之中,5 點前,數(shù)據(jù)終于全部被恢復了。

我們又趕忙找了幾個測試號,從用戶側做了一次完整的驗證,確保整個業(yè)務流程不受影響。

一切符合預期!我們的心才終于安定了下來??戳丝磿r間,已經是凌晨 5 點多了。

搞了一整夜,大家已經是極度疲憊,我們下樓叫了出租車各自回去。

在出租車上,我看著冷清的街道,綠化樹一棵棵飛快地往后跑去,馬路兩邊的霓虹燈已經漸漸微弱,天邊慢慢露出了乳白色的微光。

我感到疲憊,但也感到一種興奮。似乎經歷了一個人生的重大危機,所幸是有驚無險!

現(xiàn)在回想起來,那確實是驚心動魄的一夜,不過,所幸大家都響應的很及時,配合的很好,才避免了一次可能上微博的刪庫跑路事件。

我們后來看玩笑,幸好那晚的運氣和配合都很好,D 和他的實習生終于不用跑了 。

這是一個業(yè)務高速發(fā)展路上的一個小插曲。因為當時的業(yè)務發(fā)展很快,無論是人員的培訓還是技術方案的完備性上,都有缺失,但因為大家的努力和盡責,最終還是挺了過來。

在后面的日子里,我們做了多方面的改進,類似的事情,便從未再發(fā)生! 

 

責任編輯:龐桂玉 來源: 51CTO技術棧
相關推薦

2020-07-27 08:26:03

數(shù)據(jù)庫 SQL索引

2021-06-24 17:37:58

機器學習人工智能計算機

2021-07-28 05:01:29

Lombok前端測試

2020-10-26 08:56:32

技術總監(jiān)程序員

2023-03-10 08:27:07

for循環(huán)項目線性結構

2024-02-20 14:40:35

Linux運維

2019-02-25 08:28:53

2021-10-07 16:45:06

MySQL數(shù)據(jù)庫

2021-05-11 16:20:02

網站HTTPHTTPS

2018-03-21 14:33:45

數(shù)據(jù)庫刪庫備份恢復

2021-03-26 06:14:26

Hashcode項目排查

2021-07-19 05:18:55

Windows 操作系統(tǒng)365 云電腦

2021-01-05 22:49:37

Python編程語言Java

2020-05-19 08:30:33

kill -9命令Linux

2022-10-25 17:53:09

Java線程池

2019-07-29 14:38:35

服務器開發(fā)工具

2012-11-19 13:53:42

職場Google實習生

2021-04-30 08:21:22

Linux管道設計

2019-08-15 23:06:31

2018-01-18 22:26:30

點贊
收藏

51CTO技術棧公眾號