mysql 誤操作(更新燕鸽,刪除)補(bǔ)救辦法

修改mysql數(shù)據(jù)時(shí)兄世,有時(shí)候因?yàn)橥藢?xiě)where語(yǔ)句或是條件不對(duì),造成數(shù)據(jù)被錯(cuò)誤的刪除或更新啊研,以前使用oracle的時(shí)候御滩,有個(gè)閃回的工具,可以在一定時(shí)間內(nèi)通過(guò)時(shí)間點(diǎn)來(lái)查詢(xún)表的歷史數(shù)據(jù)党远,很好用削解。但mysql好像沒(méi)有這個(gè)功能,一旦提交的修改沟娱,就只能通過(guò)log來(lái)手動(dòng)找回?cái)?shù)據(jù)氛驮,不過(guò)這個(gè)功能還是很好用的

這個(gè)功能依賴(lài)的是mysql的binlog 功能,binlog會(huì)把數(shù)據(jù)庫(kù)的幾乎所有操作(主要是對(duì)數(shù)據(jù)的修改操作)記錄到一個(gè)二進(jìn)制文件里济似,這個(gè)功能在最近的mysql版本里都是默認(rèn)打開(kāi)的矫废,雖然binlog會(huì)給數(shù)據(jù)庫(kù)的性能增加些許的負(fù)擔(dān)盏缤,但是相比帶來(lái)的便利,這點(diǎn)性能負(fù)擔(dān)顯得微不足道蓖扑,使用binlog的好處有兩點(diǎn)唉铜,一是可以讀取這個(gè)log文件來(lái)查找對(duì)數(shù)據(jù)庫(kù)的修改記錄,另一個(gè)就是用于數(shù)據(jù)庫(kù)主從復(fù)制律杠。下面就來(lái)利用binlog找回被誤更新的數(shù)據(jù)

整個(gè)恢復(fù)過(guò)程大概分5步:

  • 檢查mysql的binlog 設(shè)置
show variables like 'log_bin';  # 檢查是否開(kāi)啟了binlog潭流,
On # 表示已經(jīng)開(kāi)啟binlog
show global variables like "%binlog_form%"; # 檢查binlog的格式
ROW # 如果為row,表示數(shù)據(jù)庫(kù)會(huì)記錄每一行數(shù)據(jù)的修改

關(guān)于binlog的格式柜去,主要有兩種灰嫉,一種是基于sql的,就是會(huì)記錄執(zhí)行過(guò)的每條sql語(yǔ)句诡蜓,另一種就是上面這種基于row 行數(shù)據(jù)的熬甫,這種格式的log非常詳細(xì),會(huì)記錄每一行數(shù)據(jù)修改前和修改后的記錄蔓罚,適合對(duì)誤操作進(jìn)行恢復(fù)

  • 定位時(shí)間范圍和binlog
    因?yàn)閞ow 格式的binlog文件特別大,人很難看的過(guò)來(lái)瞻颂,為了縮小查找范圍豺谈,最好預(yù)估一下誤操作的時(shí)間范圍,比如十分鐘前贡这,昨天下午兩點(diǎn)到三點(diǎn)茬末,這種時(shí)間范圍都可以。與此同時(shí)盖矫,mysql的binlog文件也會(huì)有很多丽惭,可以通過(guò)show binary logs; 來(lái)查看binlog文件列表,


    image.png

    然后預(yù)估一下發(fā)生誤操作的時(shí)候使用的是哪個(gè)binlog辈双,預(yù)估錯(cuò)了也沒(méi)關(guān)系责掏,后面可以挨個(gè)檢查binlog文件。

  • 導(dǎo)出log
    有了上面的時(shí)間范圍和預(yù)估的binlog文件湃望,那就好辦了换衬,因?yàn)閎inlog是二進(jìn)制文件,沒(méi)法人工查看证芭,所以mysql提供了mysqlbinlog 工具來(lái)把二進(jìn)制轉(zhuǎn)成文本文件來(lái)查看瞳浦,可以使用下面的命令:

mysqlbinlog --no-defaults  --start-datetime='2020-07-13 22:10:13'  --stop-datetime='2020-07-13 22:10:33' -v binlog.000329 >  /home/yuxy/bak.txt

上面語(yǔ)句里預(yù)估發(fā)生的時(shí)間在 22:10:13秒到22:10:33之間,log寫(xiě)在在binlog.000329里废士, -v 表示把binlog里編碼過(guò)的sql語(yǔ)句解碼成字符串叫潦,沒(méi)有這個(gè)參數(shù)的話,看到的log里的sql語(yǔ)句都是base64 格式的官硝。最后把上面的結(jié)果輸出到bak.txt文件里矗蕊。
那這個(gè)binlog文件里log到底是什么樣子的呢四敞? 如下:


image.png

我更新的時(shí)候忘了寫(xiě)where過(guò)濾,造成把全表都更新了拔妥,但log里為每一條行數(shù)據(jù)記錄了一個(gè)update語(yǔ)句忿危,并且圖中紅框里記錄了修改之前的值,綠框里記錄了修改之后的值没龙,這樣修改前后的數(shù)據(jù)一目了然铺厨,找回原來(lái)的數(shù)據(jù)也就很簡(jiǎn)單了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市硬纤,隨后出現(xiàn)的幾起案子解滓,更是在濱河造成了極大的恐慌,老刑警劉巖筝家,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洼裤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡溪王,警方通過(guò)查閱死者的電腦和手機(jī)腮鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)莹菱,“玉大人移国,你說(shuō)我怎么就攤上這事〉牢埃” “怎么了迹缀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蜜徽。 經(jīng)常有香客問(wèn)我祝懂,道長(zhǎng),這世上最難降的妖魔是什么拘鞋? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任砚蓬,我火速辦了婚禮,結(jié)果婚禮上掐禁,老公的妹妹穿的比我還像新娘怜械。我一直安慰自己,他們只是感情好傅事,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布缕允。 她就那樣靜靜地躺著,像睡著了一般蹭越。 火紅的嫁衣襯著肌膚如雪障本。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音驾霜,去河邊找鬼案训。 笑死,一個(gè)胖子當(dāng)著我的面吹牛粪糙,可吹牛的內(nèi)容都是我干的强霎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蓉冈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼城舞!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寞酿,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤家夺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后伐弹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拉馋,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年惨好,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煌茴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昧狮,死狀恐怖景馁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逗鸣,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布绰精,位于F島的核電站撒璧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笨使。R本人自食惡果不足惜卿樱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硫椰。 院中可真熱鬧繁调,春花似錦、人聲如沸靶草。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奕翔。三九已至裕寨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宾袜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工捻艳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庆猫。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓认轨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親月培。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嘁字,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355