被小伙伴們嚇哭了:可怕的命令
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-09 19:19:11
被小伙伴們嚇哭了:可怕的命令
被小伙伴們嚇哭了:可怕的命令:殺手級命令:rm -rf2014-5-17-某軟件公司在生產(chǎn)環(huán)境誤刪數(shù)據(jù)庫文件悲劇一:妹子在生產(chǎn)服務(wù)器上本意刪除Oracle,但腳本中有一句:rm -rf $ORACLE_BASE/*不幸變量 ORACLE_BASE 未賦值Tomcat/MySQL...全刪了事故發(fā)生后,沒有及時(shí)發(fā)現(xiàn),造成部分?jǐn)?shù)據(jù)寫入磁
導(dǎo)讀被小伙伴們嚇哭了:可怕的命令:殺手級命令:rm -rf2014-5-17-某軟件公司在生產(chǎn)環(huán)境誤刪數(shù)據(jù)庫文件悲劇一:妹子在生產(chǎn)服務(wù)器上本意刪除Oracle,但腳本中有一句:rm -rf $ORACLE_BASE/*不幸變量 ORACLE_BASE 未賦值Tomcat/MySQL...全刪了事故發(fā)生后,沒有及時(shí)發(fā)現(xiàn),造成部分?jǐn)?shù)據(jù)寫入磁
- 殺手級命令:rm -rf
- 2014-5-17-某軟件公司在生產(chǎn)環(huán)境誤刪數(shù)據(jù)庫文件
- 悲劇一:
- 妹子在生產(chǎn)服務(wù)器上本意刪除Oracle,但腳本中有一句:rm -rf $ORACLE_BASE/*
- 不幸變量 ORACLE_BASE 未賦值
- Tomcat/MySQL...全刪了
- 事故發(fā)生后,沒有及時(shí)發(fā)現(xiàn),造成部分?jǐn)?shù)據(jù)寫入磁盤,加大了不可恢復(fù)的幾率
- 悲劇二:
- 找到脫機(jī)備份,發(fā)現(xiàn)備份文件只有1KB,里面只有幾行熟悉的 mysqldump 注釋。可用的、最接近的備份時(shí)間是2013年年底
- 應(yīng)對:
- 把盤 umount,防止繼續(xù)有數(shù)據(jù)寫入
- 把盤以只讀方式掛到另一臺服務(wù)器上進(jìn)行操作
- 用 ext3grep 工具恢復(fù)出了 MySQL 幾個(gè) binlog 文件
- 將 binlog 文件復(fù)制到測試服務(wù)器,運(yùn)行 mysqlbinlog /usr/mysql-bin.000010 | mysql -uroot -p 命令,執(zhí)行 binlog 還原
- 數(shù)據(jù)成功恢復(fù)
- 2013-6-26-”下廚房“誤刪數(shù)據(jù)庫主節(jié)點(diǎn)分區(qū)
- 悲劇一
- 意圖重建備份節(jié)點(diǎn),需要把原來的從節(jié)點(diǎn)刪除,重新安裝,所以先使用了 rm -f 方式刪除備份節(jié)點(diǎn)分區(qū)上的所有文件
- 5分鐘后,發(fā)現(xiàn)剛才刪除的是數(shù)據(jù)庫主節(jié)點(diǎn)的分區(qū)
- 悲劇二
- 由于4月23日數(shù)據(jù)庫主節(jié)點(diǎn)遷移并升級到 MySQL 5.5,導(dǎo)致備份任務(wù)停止
- 在長達(dá)兩個(gè)月的時(shí)間里,一直沒有將數(shù)據(jù)庫備份節(jié)點(diǎn)恢復(fù)工作提上日程
- 只有主節(jié)點(diǎn)上開啟了 binlog
- 應(yīng)對
- 把整個(gè)分區(qū) dd 成鏡像,準(zhǔn)備做將來硬盤恢復(fù)的備份
- 把 memcache 里的數(shù)據(jù) dump 出來,以備可能的恢復(fù)(鄭昀注:但只 dump 了一半,有人把服務(wù)重啟了)
- 重新啟用原來的從數(shù)據(jù)庫,由于數(shù)據(jù)時(shí)間只到4月23日,需要調(diào)整近兩月表結(jié)構(gòu)變更,讓最新的代碼可以跑起來
- 聯(lián)系上沃趣科技和北亞數(shù)據(jù)恢復(fù)中心,到7月1日上午,北亞數(shù)據(jù)恢復(fù)中心提取到幾乎是完整的 ibdata1 文件,至7月2日凌晨4點(diǎn),恢復(fù)了這次得到的所有數(shù)據(jù)
- 7月2日下午4點(diǎn),北亞提取到 ibdata1 剩下的文件碎片,得到了完整的 ibdata1 文件,MySQL 無報(bào)錯(cuò)啟動,從而得到了6月26日凌晨事故前的完整數(shù)據(jù)庫
- 鄭昀注1:對上述兩個(gè)事件,都是”在MySQL運(yùn)行情況下通過rm -rfs刪除數(shù)據(jù)庫文件“,那么文件到底刪了嗎?請看下廚房的事后總結(jié):
- 『事后從沃趣科技的數(shù)據(jù)庫工程師那里得知,我們第一時(shí)間停止 MySQL 防止硬盤繼續(xù)寫入這個(gè)應(yīng)急措施是錯(cuò)誤的,即使分區(qū)完全沒有文件,MySQL 的進(jìn)程繼續(xù)運(yùn)行,只要保留這個(gè)現(xiàn)場,可以從內(nèi)存中獲取更多的數(shù)據(jù)庫結(jié)構(gòu)信息,對恢復(fù)數(shù)據(jù)非常有幫助。』
- 鄭昀注2:有人認(rèn)為第一時(shí)間應(yīng)該停止 Web 服務(wù),而不是停止 MySQL 實(shí)例
- Redis的 shutdown 命令
- 據(jù)傳,某東電商網(wǎng)站在某年雙十一前出過一次不小的事故,原因居然是程序中要斷開 Redis 的鏈接(命令應(yīng)為:disconnect),但代碼中寫的是 shutdown……——Fenng
- rsync的源目錄和目標(biāo)目錄寫反了
- 悲劇的是,rsync 不僅同步很快,刪除文件速度也很快,你把一個(gè)空目錄當(dāng)成源,那真正的源目錄的數(shù)據(jù)瞬間消失……
-
總結(jié):
備份是王道。
備份的可恢復(fù)性檢查是王道中的王道。
保持清醒(嚴(yán)禁飲酒操作¥%#^)。
遇事冷靜。
參考資源:
1,老周,2014,一次心驚肉跳的服務(wù)器誤刪文件的恢復(fù)過程;
2,下廚房,2013,下廚房6月26日數(shù)據(jù)丟失事故總結(jié);
贈圖1枚:
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
被小伙伴們嚇哭了:可怕的命令
被小伙伴們嚇哭了:可怕的命令:殺手級命令:rm -rf2014-5-17-某軟件公司在生產(chǎn)環(huán)境誤刪數(shù)據(jù)庫文件悲劇一:妹子在生產(chǎn)服務(wù)器上本意刪除Oracle,但腳本中有一句:rm -rf $ORACLE_BASE/*不幸變量 ORACLE_BASE 未賦值Tomcat/MySQL...全刪了事故發(fā)生后,沒有及時(shí)發(fā)現(xiàn),造成部分?jǐn)?shù)據(jù)寫入磁