刪了庫,還想跑路?帶新人帶出了大故障

謹慎, 是一個運維人員必備的態度, 每一個命令,每一個操作都要稍微有個停頓,以便於讓自己在最後時刻能及時發現自己的失誤,不至於造成無法挽救的後果。所以,一個優秀的運維不在於做事有多快,而是他可以在上千個日日夜夜中,謹慎、無誤,不急不躁的的完成每一件事。泰山崩於前而面不改色,任你世界再繁華我亦無動於衷。

你不是運維,所以你以為刪庫跑路只是個讓人發笑的梗,而我是個運維,雖歷盡刀山火海,但仍不免會有失誤;我給你說服務出了故障,停個服,有可能是在默默恢復數據;所以你不要嘲笑別家公司刪了庫,有可能只是自家同事備份做的好;不是你遇不到,而是你不知道;


刪了庫,還想跑路?帶新人帶出了大故障


帶了一個滿意的新人,真是一件令人幸福的事情

帶新人就像帶徒弟,當你的徒弟基礎知識紮實,思維又靈活的時候,你應該知道這是一件多麼幸福的事情。就像得到了一個人生知己,雖不說心意相通,但當你說一件事,教一個知識點,他便能瞬間領悟,不用費太多口舌去解釋,這是一個多麼興奮的事啊,又可以有更多的時間偷個懶了。

待時機成熟,我便把一個普通的小遊戲交給了他,讓其算是練個手。 有疑問的地方也會很主動的請教我,有什麼想法也會先告訴我,然後再實施,也算是慢慢步入正規。

刪了庫,還想跑路?帶新人帶出了大故障

刪庫跑路?他真的把數據庫刪了

“哥, 我好像把數據庫刪了”, 當他鐵青著臉,一臉驚恐,而又磕磕絆絆的告訴我的時候, 我甚至沒有聽到他說什麼, 聲音細若蚊聲,驚恐的看著我。 等我意識過來他說的意思的時候,我也是愣了片刻,隨後便趕忙登錄服務器查看狀況。果不其然,實例裡面除了默認庫,應用庫已經沒了。“闖大禍了”。我緩了緩神,強迫自己淡定安靜下來,心裡已經飛速思考解決方案,埋怨已經沒有用了,並且只會引起更多的人注意,需要想一個三全其美的方法:如何把這麼嚴重的事情變成一次普通的故障?如何讓更少的人知道這件事?如何將數據全部恢復?

刪了庫,還想跑路?帶新人帶出了大故障

拯救新人,矇騙項目組,恢復數據

最主要是恢復數據,然後為了保護新人,不能讓項目組知道我們把數據庫刪了。 我假裝淡定,走到項目組PM身邊,撒謊告訴他們:“剛剛接到告警,顯示我們的MySQL實例無法連接,讓他們測試下游戲是不是正常的”。當然得到的遊戲異常的結果,數據庫都沒了,正常了都是怪事。我隨即說: “我這邊需要調試一下,你持續的刷新遊戲, 我們微信交流”。然後就回到自己的工位。讓他持續刷新遊戲就是為了防止他跑來看我操作,恢復數據他應該還是能看懂的,要是被他猜到了怎麼辦,還是不讓他看到比較好。

數據安全一向是重中之重, 機器可停,服務可斷,但是數據不能丟失,這是做為一個運維的底線。在運維的理念中,做一件事情,我們需要提前考慮好最壞的情況,制定出如何在最壞的情況下亦能將損失降到最低。

數據恢復其實對於我們來說是一個簡單的事情, 通過調整備份週期,備份程序自動啟動,將每個實例的數據和bin log日誌都進行相應的備份,然後恢復時再將備份導入實例, 另外如果服務器存在,則將服務器內的bin log進行操作回放,如果服務器也銷燬了,就使用備份的bin log進行恢復。

數據恢復成功之後, 查看了服務日誌,也沒有任何報錯之後,便告訴項目組多刷新幾次。項目組回饋遊戲已經正常了,我這邊也終於可以長長的呼了一口氣。

刪了庫,還想跑路?帶新人帶出了大故障

秋後算帳,關起門來批評

畢竟是一次故障, 項目組多次詢問此次故障的原因,我均以實例莫名故障為由搪塞過去,並表示自己也還在繼續查原因,等原因查明,必然會再次告知。

外部因素已消除,自己內部還是要進行批評總結的,我將此事告知了經理,並告知了處理結果,經理臉色也是由陰轉晴,並對其進行了嚴厲的批評,並告知我以後他操作數據時,由我全程觀察。

而刪庫原因也是很簡單,項目組準備開放葡萄牙區域,需要單獨創建葡萄牙服務專屬的數據庫,所以操作時,本應該創建game_pr庫,但是字母拼錯,寫成了game_br,所以就想著刪除重建,但是,不知為何,卻刪除了game數據庫,也就是目前線上的數據庫,所以才造成此次故障。

身為一個一線運維人員, 謹慎、小心 一向是我們的第一要則,哪怕前方有刀山向你襲來,有火海向你撲來,你都要保持淡定,頭腦清醒。你的一行命令足以造成難以恢復的災難。當你感覺自己累了,大腦不清醒了,請你閉上眼睛,適當的休息。開弓沒有回頭箭,謹慎的對待你所寫下的每行代碼。


分享到:


相關文章: