有經(jīng)驗(yàn)的程序員恐怕都知道rm -rf /*的威力,并且rm -rf $ORACLE_BASE/*如果 ORACLE_BASE 這個(gè)變量沒(méi)有賦值,那命令就變成了:rm -rf /*,當(dāng)你身邊有人不(沒(méi))?。ń?jīng))心(驗(yàn))在生產(chǎn)環(huán)境按下這個(gè)核按鈕要跑路時(shí)你可以實(shí)力裝x,用以下方式拯救:
1.趕快對(duì)盤(pán) umount,防止重新寫(xiě)入補(bǔ)刪文件扇區(qū);
2.安裝ext3grep,下載地址拿去,記得下面有個(gè)補(bǔ)丁也要下不然文件怕是恢復(fù)不全https://code.google.com/p/ext3grep/
安裝好了先執(zhí)行掃描文件名命令:
ext3grep /dev/vgdata/LogVol00 --dump-names
打印出了所有被刪除文件及路徑,基本你就知道要恢復(fù)的文件有哪些了,下來(lái)可以恢復(fù)了,執(zhí)行命令:
ext3grep /dev/vgdata/LogVol00 --restore-all
到現(xiàn)在應(yīng)該恢復(fù)的差不多了,假如不幸文件沒(méi)恢復(fù)全,但是又設(shè)置了數(shù)據(jù)庫(kù)Binlog,那你該開(kāi)心了,執(zhí)行命令:
ext3grep /dev/vgdata/LogVol00 --restore-file var/lib/mysql/mysql-bin.000001
也許你的也log文件好幾個(gè),只要成功一個(gè)就行,恢復(fù)好執(zhí)行命令:
mysqlbinlog /usr/mysql-bin.000010 | mysql -uroot
可能會(huì)卡住,卡住就是正在恢復(fù),穩(wěn)住就ok
另外警告?兩條!?。?、生產(chǎn)環(huán)境用監(jiān)控程序,服務(wù)一旦有異常,短信告警相關(guān)責(zé)任人,如有數(shù)據(jù)丟失情況,第一時(shí)間防止寫(xiě)入,否則時(shí)間長(zhǎng)了神仙也救不了。2、不能使用 Root 用戶(hù)來(lái)操作。應(yīng)該在服務(wù)器上開(kāi)設(shè)不同權(quán)限級(jí)別的用戶(hù)。好的工作機(jī)制最重要,亡羊補(bǔ)牢總是悲哀的.