Redis数据恢复--误删数据后一次吓尿的经历
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
1、起因,一個flushdb命令
因為誤操作,
輸入了一個flushdb命令,
導到redis里0號庫里的數(shù)據(jù)全部清空,OMG,這里有不少重要信息,如果被領導知道,必開除
?
2、appendonly留有生機
仔細想想,當時數(shù)據(jù)備份是有設置日志備份的,找到Redis的配置文件redis.conf
appendonly yes# The name of the append only file (default: "appendonly.aof")appendfilename "appendonly.aof"于是將appendonly.aof文件導出,自己在線下又搭了個redis,開始嘗試將數(shù)據(jù)恢復出來
?
3、編輯日志文件
我最開始用的EditPlus,拉開文件,拉到最底下,看到了flushdb的操作記錄,呵呵,心情大好
但是無論你怎么改appendonly.aof,都無法通過redis-check-aof的檢驗,會一直報數(shù)據(jù)有錯,使用fix方法反而會將所有記錄清空,反正是不能用EditPlus這種普通的文本編輯器了,
要用個十六進制進制編輯器,于是download了一個Hex Editor。
多找?guī)讉€aof文件用來進行對比,分析它的數(shù)據(jù)格式(這個需要點耐心,反正我是用猜的),分析得出其flushdb在其中對應的字符是"*1..$7..flushdb..",刪除這一段后保存。
將保存好的appendonly.aof上傳到Redis的服務器,重啟Redis,順利啟動,
用redis-cli查看數(shù)據(jù),輸入
keys *有數(shù)據(jù)了,長吁一口氣
? ? ? ?這事太丟人了,要引以為戒,想辦法抹掉能抹的痕跡。事了拂衣去,早早洗了睡,不想再摻和運維的事了,太嚇人了。
轉載于:https://my.oschina.net/u/2604795/blog/743616
總結
以上是生活随笔為你收集整理的Redis数据恢复--误删数据后一次吓尿的经历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql二进制安装
- 下一篇: svn的使用!!!