精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL數據恢復的九把瑞士軍刀

數據庫 MySQL
做DBA的朋友可能都遇到過MySQL數據損壞或丟失的問題,比如忘加where條件的update、delete語句,或者MySQL服務器異常宕機導致數據文件損壞等。本文針對在日常運維中由于誤操作、數據文件損壞、硬盤損壞、備份失效等情況導致的各種數據丟失或損壞的場景,提供了九種恢復方案,供大家參考。

做DBA的朋友可能都遇到過MySQL數據損壞或丟失的問題,比如忘加where條件的update、delete語句,或者MySQL服務器異常宕機導致數據文件損壞等。本文針對在日常運維中由于誤操作、數據文件損壞、硬盤損壞、備份失效等情況導致的各種數據丟失或損壞的場景,提供了九種恢復方案,供大家參考。

注:高危操作請勿在沒有測試的情況下,直接在生產環境使用。

工具一:完全備份+binlog

恢復數據最常見的做法,只要有這兩樣東西,無論是誤操作還是數據庫損壞等,都能恢復數據到指定的時間節點,能覆蓋大多數的恢復場景,也是DBA手中最重要的資產。恢復方法比較簡單這里就不過多贅述了。

工具二:業務邏輯反推恢復update誤操作

這種方法適合做了誤操作但停機會造成更大影響的場景,通過邏輯反推可以迅速恢復數據到正常狀態。下面我們以用戶充值表為例,來看看如何恢復誤操作。

充值狀態說明:0未充值,1已充值,2充值失敗,3充值異常。

示例1:

某開發在處理用戶充值故障時漏掉了用戶id,導致大面積的用戶充值狀態被篡改。由于此表中有last_update_time字段,所以我們可以根據最后修改時間恢復這次的誤操作。

  1. 正確的語句update t1 set status=1 where member_id=10001 and status=0;  
  2. 誤操作語句update t1 set status=1 where status=0;  
  3. 反向執行即可恢復誤操作update t1 set status=0 where status=1 and last_update_time=’2017-03-20 11:30:27’;  

示例2:

某開發在處理用戶充值狀態時,漏掉了where條件,導致全表被更新。

  1. 正確的語句update t1 set status=1 where member_id=10001 and status=0;  
  2. 誤操作語句update t set status=1;  

執行時丟失了where條件,此時就要根據其它表中記錄的用戶最后的充值status來進行恢復了,比如用戶充值歷史表,先從用戶充值歷史表中取得用戶最后一次充值的記錄,分析此次充值的status,恢復到用戶充值表即可。這種恢復方法和業務邏輯密切相關。

從這里我們也可以看出此方法并不是很嚴謹,比較適合小規模的恢復。

工具三:MySQL flashback

最早的相關資料是在彭立勛的博客上,隨后他提交給了MariaDB,網易等大廠在自己的分支中也實現了該功能。對于仍然在使用官方主流版本的同學來說,業內開源的mysqlbinlog_flashback和binlog2sql這兩個閃回工具是個不錯的選擇,作者已經在Github上開源。

其原理主要是由于binlog中會記錄Update和Delete語句在更改前后的所有狀態(如下圖),對binlog進行解析和處理即可得到原始SQL、回滾SQL、INSERT語句等,可以恢復Update和Delete誤操作。

恢復與誤操作 

工具四:innodb_force_recovery

MySQL非正常重啟或者磁盤故障等原因可能導致MySQL數據文件損壞,損壞后會導致MySQL server無法啟動。如果也沒有備份文件,可以使用這個選項強制InnoDB啟動,阻止一些后臺操作的運行,從而dump出數據庫中的數據。

innodb_force_recovery可選的值為0-6,默認情況下的值為0,大的數字包含前面所有數字的影響。當設置參數值大于0后,可以對表進行select,create,drop操作,但insert,update或者delete這類操作是不允許的。

  1. SRV_FORCE_IGNORE_CORRUPT:忽略檢查到的corrupt頁  
  2. SRV_FORCE_NO_BACKGROUND:阻止主線程的運行,如主線程需要執行full purge操作,會導致crash  
  3. SRV_FORCE_NO_TRX_UNDO:不執行事務回滾操作  
  4. SRV_FORCE_NO_IBUF_MERGE:不執行插入緩沖的合并操作  
  5. SRV_FORCE_NO_UNDO_LOG_SCAN:不查看重做日志,InnoDB存儲引擎會將未提交的事務視為已提交  
  6. SRV_FORCE_NO_LOG_REDO:不執行前滾的操作。  

[mysqld]中加入此參數,嘗試啟動MySQL,如果啟動失敗就逐步增加參數的值,直到啟動為止,當然其數據一致性也會越來越差。數據庫啟動后,InnoDB類型的表只能讀不能寫,此時把表中的數據dump出來,或導入MyISAM表里面,即可恢復損壞的數據。

工具五:DISCARD、IMPORT TABLESPACE

這種方法適用于修復frm文件損壞,或者誤操作、ibd損壞但是有物理備份的情況。修復數據要分兩種情況討論:

有物理備份,數據損壞后table沒有recreate過

這種情況下恢復是比較簡單的,物理備份中的ibd、數據庫中ibd的space id和index id,都是和ibdata文件中的space id和index id一致的,所以可以直接拿物理備份中的ibd覆蓋數據庫中的ibd。

操作過程:

  1. 應用物理備份的log:innobackupex --apply-log  
  2. 備份數據庫中的ibd:cp test.ibd test.bak  
  3. 丟棄數據庫中的ibd:alter table test discard tablespace;  
  4. 復制物理備份中的ibd到數據庫目錄:cp /bak/test.ibd /data/test/; chown mysql:mysql /data/test/test.ibd  
  5. 導入ibd:alter table test import tablespace;  

有物理備份,但是數據庫中表結構已經被drop。

這種情況有點復雜,因為表被drop后元數據中的space id和index id已經被刪除。但space id和index id會留空,不會被新創建的table占用,給我們留下了恢復的機會。只需要重建表結構,然后在ibdata中還原該表的space id即可,還原過程需要percona recovery tool的協助。

操作過程:

  1. 應用物理備份的log:innobackupex --apply-log  
  2. 數據庫中重建表:create table test(id int); 

關閉數據庫

用物理備份中的ibd覆蓋數據庫中的ibd

  1. 使用percona recovery tool修改ibdata:~/percona-data-recovery-tool-for-innodb-0.5/ibdconnect -o /data/ibdata1 -f /data/test/test.ibd -d test -t test 

 

  1. 使用percona recovery tool對ibdata做checksum:~/percona-data-recovery-tool-for-innodb-0.5/innochecksum -f /data/ibdata1 

重復執行執行步驟6,直到沒有任何輸出為止

啟動MySQL

工具六:手工修改ibd

這種方法適用于只有ibd文件和表結構了,frm和ibdata全部損壞的情況。其原理是在新數據庫上創建表,然后修改待恢復的ibd的文件頭,使之適應新表的space id和index id,從而讀取出ibd中的數據。

操作過程:

1、新建數據庫,創建需要恢復的數據庫的表結構。

2、使用vim打開此表的ibd文件,16進制查看。

  1. [root@localhost test]# vim -b tmp.ibd  
  2. :%!xxd   

操作過程 

3、使用vim打開要恢復的ibd文件,16進制查看

16進制 

4、修改要恢復的ibd文件,將紅方框中的值修改的和剛剛創建的新表的ibd文件一致。看到后面大段的0000沒,我們只需要修改文件頭就可以了。00000c0偏移量以后的不用修改。

  1. [root@localhost test]# vim -b tmp.ibd  
  2. :%!xxd -r #一定要先執行這一步  
  3. :wq  

5、把待恢復的ibd文件覆蓋剛剛創建的新表的ibd文件。修改文件權限為MySQL用戶。

6、重啟MySQL,重啟時加上參數innodb_force_recovery。

7、將數據dump出來,找回數據成功。

工具七:extundelete

這個工具是基于Linux的文件恢復工具,可以用來恢復誤刪除的表,對于DML和truncate操作無能為力。其主要原理是在Linux文件系統中,刪除文件只是刪除了文件系統的inode信息,物理文件仍然在磁盤上,通過此工具即可將誤刪除的文件恢復正常。當然前提是物理文件沒有被覆蓋。類似的工具還有ext3grep、debugfs等,不再贅述。

工具八:Percona Data Recovery Tool for InnoDB

這個工具是Percona公司開發的一款InnoDB數據恢復工具,目前已經停止開發,但是仍然可用。它通過在原始數據文件(ibd) 中直接提取表的行記錄,實現我們從損壞的表恢復數據的目的。要完成這類恢復,前提是要知道待恢復的表結構。Percona Data Recovery Tool for InnoDB直接讀取InnoDB的物理頁,按照我們給出的表定義,把數據恢復成類csv文件。恢復后的數據可能包含正確的行記錄,也可能包含不正確的行記錄,并且拿到的數據比較亂,需要做進一步的處理才能導入到數據庫中。這個辦法是沒有辦法中的辦法了,不得已而為之,希望大家都不會用到這個工具。

以上為本人在運維MySQL過程中總結的數據恢復經驗,希望能給大家帶來幫助,謝謝!

責任編輯:杜寧 來源: DBAplus社群
相關推薦

2014-09-26 14:30:41

2010-12-01 12:31:23

NetCat掃描端口

2023-12-25 12:03:42

2013-06-08 10:36:47

Linux命令行

2021-12-28 09:55:40

UbuntuRescuezillaLinux

2017-04-21 09:42:18

4G5G物聯網

2020-07-02 09:21:40

Java 緩存開發

2009-07-21 14:16:18

Scalafor表達式

2013-04-11 10:51:27

2011-10-18 14:11:17

Web開發

2022-02-15 10:15:13

Web網絡程序員

2014-05-29 14:44:06

瑞士軍刀綜合征開發者

2021-09-05 18:30:59

Alpine容器Busybox

2009-09-09 12:10:40

2019-06-24 09:57:39

網絡工具調試

2011-08-01 09:43:08

PhoneGap 1.PhoneGap

2023-04-27 07:06:09

Categraf夜鶯

2024-10-21 14:54:22

2015-09-28 09:46:31

ZooKeeper分布式系統瑞士軍刀

2019-06-27 17:00:09

nc命令 Linux
點贊
收藏

51CTO技術棧公眾號

狠狠躁日日躁夜夜躁av| 永久免费成人代码| 国产后进白嫩翘臀在线观看视频| www.欧美精品一二区| 欧美在线亚洲在线| 日本免费网站视频| 理论片一区二区在线| 日本久久电影网| 成人免费看片视频在线观看| 欧美一级一区二区三区| 免费精品视频在线| 国内外成人免费激情在线视频 | 国产在线精品一区二区| 久久免费视频在线| 国产视频精品免费| 色天下一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 一区二区三区色| 欧美日韩国产不卡在线看| 91九色蝌蚪91por成人| 免播放器亚洲| 久久久久久久久久久久久久久久久久av| www.自拍偷拍| 99精品国产高清一区二区麻豆| 色狠狠av一区二区三区| 99热久久这里只有精品| 毛片在线视频| 久久综合网色—综合色88| 国产欧美一区二区三区在线| 波多野结衣国产| 国产韩国精品一区二区三区| 国产丝袜高跟一区| 95视频在线观看| 亚洲图片小说区| 一本到不卡免费一区二区| 少妇人妻大乳在线视频| 亚洲按摩av| 最新热久久免费视频| 欧美一区二区三区四区五区六区| 好男人在线视频www| 激情五月婷婷综合网| 国产精品久久久久久久一区探花| 亚洲精品中文字幕乱码三区91| 亚洲无线视频| 欧美激情综合亚洲一二区| 国产真实乱在线更新| 日韩精品久久| 色综合亚洲精品激情狠狠| 真实乱视频国产免费观看| 亚洲欧美校园春色| 日韩精品在线影院| 91视频啊啊啊| 在线观看欧美理论a影院| 日韩精品一区二区视频| 色呦呦一区二区| 国内毛片久久| 亚洲精品www久久久| 亚洲图片综合网| 欧美黑白配在线| 日韩精品中文字幕在线观看| av在线网站观看| 国产欧美一区| 少妇精69xxtheporn| 亚洲aaa视频| 五月天久久网站| 欧美成人精品h版在线观看| 日韩黄色免费观看| 国内精品久久久久久久97牛牛 | 精品1区2区在线观看| 亚洲视频天天射| 亚洲福利网站| 这里只有精品在线播放| 激情无码人妻又粗又大| 国产精品精品国产一区二区| 欧美成人亚洲成人| 国内免费精品视频| 久久精品毛片| 成人国产精品免费视频| 亚洲国产成人在线观看| 91免费在线看| 一道精品一区二区三区| 50度灰在线| 欧美日韩在线第一页| 亚洲一区二区蜜桃| 日韩精品免费视频一区二区三区| 精品国产免费人成电影在线观看四季| 免费黄色三级网站| 成人短片线上看| 欧美尺度大的性做爰视频| 国产成人啪精品午夜在线观看| 国产日韩亚洲| 成人黄色午夜影院| 天天干免费视频| 国产精品麻豆一区二区| 91免费黄视频| 成人在线免费| 亚洲大胆人体av| 超碰人人人人人人人| 欧美日韩一区二区国产| 国产成人avxxxxx在线看 | 韩国女主播成人在线| 国产精品综合久久久久久| 国产福利在线看| 一区二区三区久久| 波多结衣在线观看| 九九热hot精品视频在线播放 | 成人一级片免费看| 欧美午夜精品| 国产中文欧美精品| 天天影院图片亚洲| 亚洲精品自拍动漫在线| 动漫av免费观看| 大型av综合网站| 色狠狠av一区二区三区香蕉蜜桃| 日本一区二区网站| 狠狠色伊人亚洲综合成人| 欧美日韩综合久久| h片在线观看| 欧美一区二区网站| 调教驯服丰满美艳麻麻在线视频| 亚洲三级免费| 91蜜桃网站免费观看| www亚洲人| 精品久久久中文| 午夜性福利视频| 久久精品欧美一区| 国产精品美女999| 日韩a在线观看| 偷拍亚洲欧洲综合| 国产免费无码一区二区| 亚洲精品中文字幕乱码| 国产精品美女免费| 国产色在线 com| 色综合天天性综合| 内射中出日韩无国产剧情| 欧美日韩免费观看一区=区三区| 国产精品一区=区| wwwww在线观看免费视频| 一本色道亚洲精品aⅴ| 亚洲av无码一区二区三区观看| 国产精品黄色| 99精品99久久久久久宅男| 黄色小网站在线观看| 欧美日韩精品系列| 亚洲黄色网址大全| 久久精品国产999大香线蕉| 日韩亚洲视频在线| 九色成人搞黄网站| 亚洲最新av网址| 最新在线中文字幕| 欧美激情一区三区| 日本中文字幕高清| 欧美顶级大胆免费视频| 成人免费午夜电影| 天堂亚洲精品| 亚洲精品在线电影| 国产情侣自拍av| 国产午夜亚洲精品羞羞网站| 欧在线一二三四区| 精品国产123区| 国产欧美精品一区二区| 日本激情视频在线观看| 欧美一二三区精品| 国产真实乱人偷精品视频| 成人黄色小视频在线观看| 久久久久久久久久网| 欧美网色网址| 国产精品免费视频久久久| 日本韩国在线视频爽| 91精品国产一区二区三区香蕉| 伊人在线视频观看| 成人精品在线视频观看| 国产xxxxx在线观看| 精品久久久久久久| 91视频国产一区| heyzo在线播放| 伊人久久久久久久久久| 国产精品热久久| 亚洲成av人片| 亚洲精品成人av久久| 国产一区二区精品久久99| 婷婷无套内射影院| 欧美一区二区三区激情视频| 91日韩在线播放| 天堂中文在线播放| 精品国产一区二区三区久久久| 亚洲国产一二三区| 色综合久久久久久久久| 男人晚上看的视频| 99re热视频这里只精品| 国产aⅴ爽av久久久久| 亚洲性图久久| 午夜精品美女久久久久av福利| 久久久久亚洲精品中文字幕| 2021国产精品视频| 黄网站视频在线观看| 日韩高清免费观看| 国产精品久久影视| 福利一区视频在线观看| 亚洲精品一区二区三区在线播放| 91在线精品一区二区| 欧美日韩在线观看不卡| 亚洲茄子视频| 伊人久久99| 国产真实有声精品录音| 999精品视频一区二区三区| 朝桐光一区二区| 欧美第一页在线| 日本中文字幕在线视频| 亚洲欧美日韩爽爽影院| 亚洲成熟女性毛茸茸| 欧美视频一区二区三区四区| 在线看成人av| 亚洲自拍偷拍九九九| 999精品久久久| 久久夜色精品国产欧美乱极品| 国产老头和老头xxxx×| 美女网站色91| 日韩欧美xxxx| 日韩一区二区久久| 999久久欧美人妻一区二区| 久久精品高清| 日韩精品国内| 美女av一区| 高清视频一区二区三区| 91麻豆精品| 国产主播喷水一区二区| 主播大秀视频在线观看一区二区| 97热精品视频官网| 免费电影视频在线看| 久久综合88中文色鬼| 男人天堂手机在线| 色婷婷综合成人av| chinese偷拍一区二区三区| 精品网站999www| 婷婷久久久久久| 亚洲白拍色综合图区| 国产丰满果冻videossex| 91精品国产综合久久婷婷香蕉| 伊人影院中文字幕| 欧美色电影在线| 亚洲无码久久久久| 欧美日韩高清一区二区| 亚洲视频中文字幕在线观看| 欧美色精品天天在线观看视频| 无码久久精品国产亚洲av影片| 91黄色免费网站| 超碰在线免费97| 欧美写真视频网站| 中文字幕一区二区人妻| 欧美日韩一区中文字幕| 最近国语视频在线观看免费播放| 欧美日韩精品一区二区三区四区| 在线观看日韩一区二区| 欧美剧情片在线观看| 国产毛片毛片毛片毛片| 日韩三区在线观看| 日韩在线视频第一页| 亚洲激情在线观看视频免费| 香蕉视频免费看| 国产午夜精品美女视频明星a级| 国产一二三在线观看| 中文欧美在线视频| av免费在线观看网站| 欧美精品电影在线| 黄色漫画在线免费看| 日本中文字幕久久看| 成人午夜在线| 国产91亚洲精品一区二区三区| 欧美丝袜美腿| 视频一区二区精品| 91tv官网精品成人亚洲| 日韩美女爱爱视频| 美女尤物久久精品| 日本高清久久久| 成人激情文学综合网| 一级黄色性视频| 亚洲天堂免费在线观看视频| 国产在线视频99| 欧美性开放视频| 国产精品久久久久久69| 精品国精品国产| 国产免费av高清在线| 不卡av电影在线观看| 久草在线资源站手机版| 国产精品色婷婷视频| 欧美a级大片在线| 欧美韩国日本精品一区二区三区| 日韩不卡一区| 国产伦精品一区二区三区四区视频_ | 久久国产精品久久国产精品| 黄视频网站在线观看| 成人黄色av网| 天堂俺去俺来也www久久婷婷| 色99中文字幕| 亚洲大胆视频| 色网站在线视频| 久久午夜色播影院免费高清| 久久中文免费视频| 一本久久a久久免费精品不卡| 国产成人av免费看| 在线观看国产欧美| 嗯啊主人调教在线播放视频| 91免费精品视频| 欧美日韩国产免费观看视频| 欧美性猛交内射兽交老熟妇| 日本中文字幕一区| 波多野结衣视频播放| 亚洲精品亚洲人成人网在线播放| 精产国品一区二区| 精品久久久久久久久久久久久久久 | 亚洲三级在线观看视频| 91老司机福利 在线| 强行糟蹋人妻hd中文| 欧美视频精品在线| 黄色软件在线观看| 91av国产在线| av男人一区| www.-级毛片线天内射视视| 久久裸体视频| 亚洲色图14p| 亚洲va欧美va人人爽午夜| 99国产精品久久久久久久成人 | 国产一区精品在线| 欧美一区影院| 国产欧美精品一二三| 国产精品妹子av| 久久精品99北条麻妃| 亚洲美女性视频| 漫画在线观看av| 精品久久久久久一区| 在线视频观看日韩| 国产乱淫av片| 亚洲一区二区三区在线看| 国产高清免费观看| 久久艳片www.17c.com| 欧美一级网址| 中文字幕不卡每日更新1区2区| 秋霞电影一区二区| 欧美偷拍一区二区三区| 91福利视频在线| 国产精品一区二区婷婷| 国产成人在线视频| blacked蜜桃精品一区| 国产自偷自偷免费一区| 国产欧美1区2区3区| 中文字幕av网站| 深夜福利亚洲导航| 日韩福利在线观看| 亚洲午夜精品久久久久久浪潮| 麻豆中文一区二区| 波多野结衣喷潮| 日韩欧美色电影| 51漫画成人app入口| 久草热久草热线频97精品| 国产农村妇女精品一区二区| 中文字幕xxx| 欧美性猛交xxxx黑人交| 337p日本欧洲亚洲大胆鲁鲁| 成人激情视频在线播放| 欧美日韩日本国产亚洲在线| 亚州av综合色区无码一区| 欧美午夜视频在线观看| 都市激情一区| 91在线免费观看网站| 精品69视频一区二区三区Q| 日本一区二区在线免费观看| 欧美特级www| av二区在线| 成人av片网址| 久久精品三级| 男人的午夜天堂| 亚洲成av人乱码色午夜| 蜜桃视频在线观看免费视频| 色姑娘综合网| 国产精品资源在线看| xxxxxx国产| 在线播放国产一区二区三区| 国产一区二区久久久久| 黄色一级在线视频| 国产精品系列在线| 成人午夜精品福利免费| 国产成人在线播放| 欧美日韩国产一区精品一区| 精品国产av无码| 欧美剧情电影在线观看完整版免费励志电影| 亚洲精品白浆| 日韩福利在线| 国产91色综合久久免费分享| 亚洲欧美日韩激情| 欧美日韩国产成人| 国产精品一区高清| 麻豆传媒在线看| 欧美性生活大片免费观看网址| 免费网站黄在线观看| 国产日韩久久| 国产在线精品一区二区三区不卡| 台湾佬中文在线| 欧美高清一级大片| 日韩在线观看一区 |