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