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

MySQL如何利用ibd文件恢復數據?

數據庫 MySQL
首先檢查數據庫環境,是否開啟了獨立表空間,如果已經開啟的話,那恭喜你,有很大的機會可以恢復全部數據。我們可以依賴每個數據庫目錄下的frm和ibd文件來實現數據恢復,一般來說如果使用了InnoDB但沒開啟獨立表空間的話,所有的數據庫表信息和元數據都會寫入ibdata文件里,這樣長久運行的話,ibdata文件會變得越來越大,數據庫性能下降。

[[194731]]

前言

數據庫丟失之痛

磁盤壞道、斷電等意外不是常態,但遇上了就足夠你“驚心動魄”!

如果是數據庫損壞造成的數據丟失,Binlog也不可用了,怎么辦?~~

為了在短時間內無損恢復數據以保證業務穩定性,除了利用binlog,我們還修煉了一招新的恢復技能!

正文

我們日常使用的比較多的兩種數據庫恢復方法是:

以上兩種方法都可以實現實時性的回檔,但是你會認為有了這兩種技能就夠了嗎?

不….!

在線上這種錯綜復雜的架構中,其實還有很多未知的原因,我們是沒法預知的。例如以下這種情況:

因辛勤勞動而折壽的磁盤產生成長壞道,導致數據庫損壞。而又剛好損壞了ibdata文件和binlog文件。那么如果還想著以定時備份+binlog恢復的方案就不可能了,難道只能用定點備份回檔嗎?深思熟慮后,作為一名運維人員,我們是絕對不會在萬不得已的情況下實行有損回檔,因為這對業務產生太大的影響了,但是除此之外又能怎么辦呢?下面我們將要放一門大招!!!

首先檢查數據庫環境,是否開啟了獨立表空間,如果已經開啟的話,那恭喜你,有很大的機會可以恢復全部數據。我們可以依賴每個數據庫目錄下的frm和ibd文件來實現數據恢復,一般來說如果使用了InnoDB但沒開啟獨立表空間的話,所有的數據庫表信息和元數據都會寫入ibdata文件里,這樣長久運行的話,ibdata文件會變得越來越大,數據庫性能下降。InnoDB提供了開啟獨立表空間參數,可以讓數據獨立存放起來,這樣子ibdata文件只用于存放一些引擎相關的索引信息,實際的數據寫入到獨立的frm和ibd文件里。

好,有了frm和ibd文件,我們可以開始嘗試數據恢復了,他的過程比binlog還原既驚險又有趣!首先我們來看一下關于ibd和frm的說明:

.frm文件:保存了每個表的元數據,包括表結構的定義等,該文件與數據庫引擎無關。

.ibd文件:InnoDB引擎開啟了獨立表空間(my.ini中配置innodb_file_per_table = 1)產生的存放該表的數據和索引的文件。

我們都知道,對于InnoDB的數據庫,如果不把整個數據目錄拷貝,只拷貝指定數據庫目錄到新的實例下,數據庫是認不出來的。那么如何根據這兩個文件還恢復數據庫呢?

恢復思路:

由于ibdata文件上存放了一些關于引擎的索引信息,ibdata文件損壞導致表名索引丟失而無法啟動。那么我們可以先把原來舊的整個數據目錄改名備份,然后重新初始化數據庫生成新的ibdata文件,然后重新創建原有的數據庫以及對應的表,***把備份的表空間id號改為新建的表空間id號(ibdata文件里有每個表唯一的表空間索引id,該id由創建新表的數量依次遞增),這樣就可以恢復原來的數據庫了。

舉個例子:

庫名:test_restore

表結構:db_struc.sql

表文件:G_RESTORE.ibd、G_RESTORE.frm

1. 創建新庫,導入表結構

#mysql -uroot –p**** -e “create database test_restore”

#mysql -uroot –p**** test_restore < db_struc.sql

2. 查看并修改test_restore庫中表在新實例中的id

#vim -b /data/database/mysql/test_restore/G_RESTORE.ibd

直接打開為亂碼,轉成16進制查看。Vi中執行 :%!xxd 轉化為16進制。結果為 :

如圖所示。G_RESTORE表在mysql數據庫中的id為00fe。

修改備份的G_RESTORE.ibd文件。操作同上,注意需先備份。

  1. #cp G_RESTORE.ibd{,_back}  
  2. #vim -v G_RESTORE.ibd 

將011b修改為00fe 。注意。修改完成后需要在vim中先執行 :%!xxd -r

再wq 保存退出文件。不然保存到的是16進制查看的結果。

保存結果如下:

將修改好的G_RESTORE.ibd 替換掉新數據庫中的G_RESTORE.ibd文件。

關于ibdata表id的解釋:

參考官方文檔解釋,每個表空間分配了4個字節存儲了表空間id信息,***偏移量地址為38。還有一組預留的表空間id,同樣是4個字節,***偏移量地址為42。

3. 驗證并還原mysql數據

關閉mysql。修改my.conf。

  1. innodb_force_recovery=6  
  2. innodb_purge_threads=0 

啟動數據庫。如果不修改。數據庫會認為G_RESTORE已被損壞。

Select 一下,即可查看到還原結果,但此時插入數據會報錯,應盡快將數據dump出來 ,導回原來的實例中。

導出數據,再導入數據,恢復完畢!

  1. #mysqldump -uroot –p****** test_restore > test_restore.sql  
  2. #mysql -uroot –p****** test_restore < test_restore.sql 

說明:變更了新的space id后的.ibd表文件,啟動數據庫后只能認出數據,但不能寫入,這是因為原ibdata文件不僅保存了space id索引,還同時保存了一些其它的元數據。為了使元數據補全,所以采取導出、再導入的操作。

以上舉例為單個庫表的恢復過程,看到這里大家一定會產生另一個疑問吧?線上的場景不可能是只有一個表的,數據庫表很多的情況下,這樣一個個表的修改,速度無疑是太慢了。那么存在大量表的情況下如何恢復呢?思路是,取得備份的ibd文件的id值,按id值順序來建表,中間跨度隨便建表語句來湊夠數(每個表空間索引id由創建新表的數量依次遞增)。實現方式如下:

1. 獲取備份數據庫ibd文件的space id號,并排序。

  1. for ibd in `find test_restore/ -name “*.ibd”` ; do echo -e “${ibd//\// } \c” ;hexdump -C ${ibd} |head -n 3 |tail -n 1|awk ‘{print strtonum(“0x”$6$7)}’ ;done | sort -n -k 3 | column -t > /tmp/ 

生成的ibd.txt文件,格式如下:(庫名–表名–SpaceId)

2. 新建表,查看當前表空間id(假設space id為10)

  1. #mysql -uroot –p****** -e”create table test.tt(a bool)”  
  2. #hexdump -C mysql/test/tt.ibd |head -n 3 |tail -n 1|awk ‘{print strtonum(“0x”$6$7)}’ 

3. 先創建所有庫,準備所有表結構,寫腳本,依據space id號自動創建新表

準備好數據庫表結構,可以從備份文件里取出來(我們備份方式是把結構和數據分開備份的),或者從其他有相同表結構的服務器上備份再拷貝過來。

參考備份語句:

  1. mysqldump -uroot –p****** -d ${db} –T /data/backup/${db}/ 

創建原有的數據庫:

  1. mysql -uroot –p****** -e “create database ${db}” 

恢復表id創建表腳本:

  1. #!/bin/bash 
  2. #因為前面假設為10,所以從11開始創建 
  3. oid=11 
  4.  
  5. #打開前面生成的ibd.txt文件,按行讀取”庫名–表名–SpaceId” 
  6. cat /tmp/ibd.txt | while read db tb id ;do 
  7.  
  8. #假如我們需要恢復catetory表,他的id為415,基于id是創表自增的原則,即415-11=404, 
  9. #我們還需要循環創建404個表后,才真正導入catetory表結構。 
  10. for ((oid;oid<id;oid++)); do 
  11. mysql -uroot –p****** -e “create table test.t(a bool);drop table test.t;” && echo “${oid} ok” 
  12. done 
  13.  
  14. #循環創建404次表后,id為415,與原來備份的.ibd文件編號一致,導入表結構 
  15. mysql -uroot –p****** ${db} < /data/backup/${db}/${tb%%.ibd}.sql && echo “${oid} ${db}/${tb%%.ibd}.sql ok” 
  16. let oid=oid+1 
  17. done 

4. 檢查表空間id 和備份的是否一致

  1. for ibd in `find test_restore/ -name “*.ibd”` ; do echo -e “${ibd//\// } \c” ;hexdump -C ${ibd} |head -n 3 |tail -n 1|awk ‘{print strtonum(“0x”$6$7)}’ ;done | sort -n -k 3 | column -t > /tmp/ibd2.txt 

確認一致后,拷貝備份的.ibd文件到新數據庫實例目錄下,修改my.cnf

  1. innodb_force_recovery=6 
  2. innodb_purge_threads=0 

啟動數據庫。后續步驟如同單表恢復,直接導出恢復到原來實例中即可。

當然,這種方式是在數據庫出現極端情況下,不得不采取的一種方式,線上最重要的還是做好主從同步和定時備份,從而規避此類風險。

關于InnoDB引擎獨立表空間說明:

使用過MySQL的同學,剛開始接觸最多的莫過于MyISAM表引擎了,這種引擎的數據庫會分別創建三個文件:表結構、表索引、表數據空間。我們可以將某個數據庫目錄直接遷移到其他數據庫也可以正常工作。然而當你使用InnoDB的時候,一切都變了。

InnoDB默認會將所有的數據庫InnoDB引擎的表數據存儲在一個共享空間中:ibdata1,這樣就感覺不爽,增刪數據庫的時候,ibdata1文件不會自動收縮,單個數據庫的備份也將成為問題。通常只能將數據使用mysqldump導出,然后再導入解決這個問題。

但是可以通過修改MySQL配置文件[mysqld]部分中innodb_file_per_table的參數來開啟獨立表空間模式,每個數據庫的每個表都會生成一個數據空間。

優點:

1.每個表都有自已獨立的表空間。

2.每個表的數據和索引都會存在自已的表空間中。

3.可以實現單表在不同的數據庫中移動。

4.空間可以回收(除drop table操作處,表空不能自已回收)

a) Drop table操作自動回收表空間,如果對于統計分析或是日值表,刪除大量數據后可以通過:alter table TableName engine=innodb;回縮不用的空間。

b) 對于使innodb-plugin的Innodb使用turncate table也會使空間收縮。

c) 對于使用獨立表空間的表,不管怎么刪除,表空間的碎片不會太嚴重的影響性能,而且還有機會處理。

缺點:

單表增加過大,如超過100個G。

結論:

共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。當啟用獨立表空間時,請合理調整一下:innodb_open_files。

配置方式:

1.innodb_file_per_table設置.開啟方法:

在my.cnf中[mysqld]下設置

  1. innodb_file_per_table=1 

2.查看是否開啟:

  1. mysql> show variables like ‘%per_table%’; 

3.關閉獨享表空間

innodb_file_per_table=0關閉獨立的表空間

  1. mysql> show variables like ‘%per_table%’; 
責任編輯:武曉燕 來源: 運維派
相關推薦

2012-12-07 14:27:47

MySQL

2012-12-07 14:17:32

MySQL數據恢復

2013-08-07 10:04:37

MySQL數據恢復

2017-05-31 16:10:45

MySQL誤操作恢復數據

2011-03-22 15:55:26

數據庫內容恢復

2021-08-14 08:59:19

勒索病毒網絡安全網絡攻擊

2021-10-15 09:55:48

Myloader數據教程

2010-06-09 15:40:59

MySQL數據庫文件

2022-12-01 14:02:02

MySQL數據文件

2012-11-07 09:44:42

IBMdw

2010-07-15 14:16:16

SQLServer恢復

2010-10-14 09:36:47

MySQL命令行

2023-09-05 00:06:45

2011-05-24 10:11:30

MySQLMongoDB

2010-08-13 09:55:33

DB2dart恢復數據

2025-08-07 02:11:00

2021-04-08 10:55:53

MySQL數據庫代碼

2010-03-31 10:39:40

RMANOracle

2020-11-04 09:56:46

網絡攻擊遠程工作數據恢復
點贊
收藏

51CTO技術棧公眾號

精品国产依人香蕉在线精品| 精品国产91乱高清在线观看| 国产精品一区二区电影| 91精品一区二区三区蜜桃| 一区三区自拍| 欧美性猛交xxxx免费看久久久| 日本欧洲国产一区二区| 国产视频www| 久久久久久黄| 欧美另类极品videosbest最新版本| 怡红院一区二区| 日韩av一级| 午夜精品在线看| 亚洲国产另类久久久精品极度| 99热这里只有精品在线| 久久国产精品99国产| 久久亚洲私人国产精品va| 免费无码一区二区三区| 国产精品日韩精品在线播放| 色综合久久88色综合天天| 超级碰在线观看| 在线免费观看黄色av| 成人黄色网址在线观看| 极品少妇xxxx偷拍精品少妇| 一区二区三区在线视频观看| 欧洲在线视频一区| 亚洲免费视频网| 麻豆一区二区三| 欧美一区二区三区…… | 伊人亚洲精品| 色综合久久中文综合久久牛| 国产爆乳无码一区二区麻豆| wwwxxx在线观看| 2023国产一二三区日本精品2022| 91亚洲永久免费精品| 国产精品第6页| 亚洲欧美清纯在线制服| 久久久久一本一区二区青青蜜月| 少妇高潮一区二区三区喷水| 国产综合久久久| 亚洲国产欧美一区二区丝袜黑人| 午夜性福利视频| 激情五月综合婷婷| 欧美三级三级三级| 人妻丰满熟妇av无码区app| аⅴ资源天堂资源库在线| 一区二区高清在线| 热久久最新网址| 国产黄网站在线观看| 国产精品另类一区| 日韩欧美视频一区二区| 国内在线免费高清视频| 久久精品人人做人人综合| 久久免费看av| 亚洲色图21p| 97久久超碰国产精品| 黄色小网站91| 人人妻人人澡人人爽人人欧美一区| 国产福利一区在线观看| 99视频在线免费观看| 成人毛片在线精品国产| 99久久er热在这里只有精品66| 国产精品免费在线| 偷拍自拍在线视频| 久久精品一区二区三区不卡| 日日噜噜噜噜夜夜爽亚洲精品| 岛国视频免费在线观看| 国产精品视频免费| 超碰97免费观看| 一色桃子av在线| 亚洲国产另类精品专区| 成人在线免费在线观看| 91精品xxx在线观看| 欧美三片在线视频观看| 激情文学亚洲色图| 97久久综合精品久久久综合| 日韩大陆毛片av| 亚洲AV无码国产成人久久| 欧美偷拍综合| 美女久久久久久久| 激情五月色婷婷| 久久综合导航| 成人亚洲欧美一区二区三区| www.我爱av| 99精品视频在线播放观看| 日韩av不卡播放| caoporm免费视频在线| 亚洲国产精品精华液网站| 日本日本19xxxⅹhd乱影响| 日本欧美不卡| 欧美一级一区二区| 少妇光屁股影院| 国产精品99一区二区三区| 欧美国产一区二区三区| 无码人妻精品一区二| 狠狠色伊人亚洲综合成人| 国产精品免费看一区二区三区| 精品视频二区| 一区二区三区欧美日| 久久精品午夜福利| 亚洲日本va| 国产亚洲欧美视频| 黄色一级视频免费| 蜜臀国产一区二区三区在线播放 | 国产免费观看高清视频| 99精品在免费线偷拍| 日韩欧美激情在线| 亚洲黄色网址大全| 国产毛片一区| 91免费版黄色| 中文字幕在线播放| 欧美午夜xxx| 被黑人猛躁10次高潮视频| 亚洲自拍电影| 97国产精品视频人人做人人爱| 亚洲视频一区在线播放| 99久久99久久综合| 4444亚洲人成无码网在线观看| 亚洲精品国产嫩草在线观看| 亚洲精品一区二区三区在线观看| 日韩一卡二卡在线观看| 久久精品官网| 国产视频在线观看一区| av在线网址观看| 欧美日韩在线一区二区| 91精品人妻一区二区| 极品尤物久久久av免费看| 91网站免费观看| 91美女视频在线| 色综合天天性综合| 亚洲第一黄色网址| 欧美日韩调教| 成人在线国产精品| 日本三级视频在线播放| 欧美色图片你懂的| 摸摸摸bbb毛毛毛片| 亚洲欧美日韩国产一区二区| 97伦理在线四区| 国产在线高潮| 欧美一区二区女人| www.xxxx日本| 国内一区二区在线| 不卡中文字幕在线| 欧美一级做一级爱a做片性| 在线观看欧美日韩| 最近中文字幕在线观看视频| 日本一区二区免费在线| 成人黄色一区二区| 欧美亚洲激情| 国产欧美日韩中文字幕| 激情在线小视频| 欧美一区三区四区| 久久中文字幕在线观看| 国产成人一区在线| 给我免费播放片在线观看| 国产福利一区二区精品秒拍| 97婷婷大伊香蕉精品视频| 天堂网www中文在线| 欧美性生交xxxxx久久久| 人妻少妇一区二区| 日韩av不卡一区二区| 视频三区二区一区| 精品国产亚洲一区二区三区大结局 | 亚洲国产精品一区二区www在线| 在线观看你懂的视频| 国内自拍视频一区二区三区| 国产偷久久久精品专区| jizz内谢中国亚洲jizz| 在线精品国产欧美| av手机免费看| 欧美日韩国产精品一区二区三区四区 | 日本十八禁视频无遮挡| 亚洲精华一区二区三区| 国产精品视频一区国模私拍 | 国产精品狼人久久影院观看方式| 毛片毛片毛片毛| 欧美久久一级| 欧美不卡在线一区二区三区| 国产精品黄色片| 欧美日本国产在线| 亚洲av成人无码网天堂| 欧美性受极品xxxx喷水| 老女人性淫交视频| 久久夜色精品一区| 污污视频网站在线| 亚洲免费高清| 中文字幕中文字幕99| 成人看片黄a免费看视频| 国产91色在线|| 99视频免费在线观看| 亚洲精品丝袜日韩| 国产精品女人久久久| 欧美日韩国产激情| 午夜精品久久久久99蜜桃最新版| 国产99久久久久| 亚欧在线免费观看| 国内精品亚洲| 亚洲国产精品123| 精品视频自拍| 成人黄色免费看| 中文字幕影音在线| 欧美精品一区在线播放| 黄上黄在线观看| 精品美女在线观看| 在线观看中文字幕码| 五月激情六月综合| 91视频免费在线看| 日本一区二区不卡视频| 亚洲图片综合网| 久久精品国产精品亚洲红杏| 日本www在线视频| 香蕉精品视频在线观看| 欧洲精品国产| 福利片一区二区| 91久久精品国产91久久性色| 666av成人影院在线观看| 欧美精品videofree1080p| 色影院视频在线| 亚洲欧美一区二区激情| 色综合视频在线| 日韩欧美电影在线| 国产又黄又爽视频| 91久久精品国产91性色tv| 国产精品6666| 亚洲综合免费观看高清完整版| 18啪啪污污免费网站| 久久色视频免费观看| 中文字幕天堂网| 国产盗摄女厕一区二区三区| 五月天婷婷亚洲| 热久久一区二区| 成人在线观看a| 久久资源在线| 日韩有码免费视频| 亚洲欧美成人| 午夜肉伦伦影院| 国产精品久久久久久模特| 久久久性生活视频| 在线欧美不卡| 给我免费播放片在线观看| 黄色成人精品网站| 日韩 欧美 视频| 亚洲黄色在线| 成年人午夜免费视频| 红桃视频国产精品| 国产成a人亚洲精v品在线观看| 亚洲色图二区| www.69av| 影音先锋亚洲一区| 97国产在线播放| 男女精品视频| 别急慢慢来1978如如2| 日韩在线卡一卡二| 中文字幕在线观看第三页| 日本强好片久久久久久aaa| 麻豆一区二区三区视频| 麻豆国产欧美一区二区三区| 亚洲第一色av| 国产mv日韩mv欧美| 人妻av一区二区| 久久综合久色欧美综合狠狠| 人人妻人人澡人人爽人人精品| 久久久久9999亚洲精品| 99久久99久久精品免费看小说.| 中文字幕不卡三区| 国产午夜手机精彩视频| 一区二区在线电影| 日本少妇在线观看| 欧美视频国产精品| 中文字幕网址在线| 欧美一区二区三区视频| 欧美在线 | 亚洲| 亚洲欧美资源在线| 黄网站在线免费| 国内精品久久久久久久久| 日日夜夜天天综合| 91人人爽人人爽人人精88v| 成人看片黄a免费看视频| 日韩精品一区二区三区丰满| 天天做天天爱综合| 男女视频网站在线观看| 日韩福利视频网| 欧美性猛交乱大交| 久久亚洲综合色一区二区三区| 一二三四在线观看视频| 亚洲一区二区三区在线看| 毛片毛片女人毛片毛片| 欧美日韩国产片| 人成网站在线观看| 中文字幕亚洲国产| 91超碰在线| 国产日韩欧美影视| 国产精品极品| 亚洲精品白虎| 99综合精品| 91国内在线播放| 91色porny在线视频| 破处女黄色一级片| 91国偷自产一区二区三区观看| 精品人妻一区二区三区麻豆91| 亚洲欧美精品在线| 在线网址91| 国产精品久久久久影院日本 | 精品国产一区二区三区久久影院| 欧美zozo| 欧美激情一二三| 国产精品久久久久久吹潮| 国产自产在线视频一区| 99久久夜色精品国产亚洲狼| 黑人糟蹋人妻hd中文字幕| 国内精品伊人久久久久av一坑| 右手影院亚洲欧美| 一区二区三区在线免费| 中文字幕在线视频第一页| 亚洲精品久久久久久久久久久| 国产一二区在线观看| 国产精品久久久久不卡| 国产成人澳门| 国产精品av免费观看| 美女视频免费一区| 亚洲精品午夜视频| 黑人精品xxx一区| 亚洲国产www| 欧美精品在线观看91| 国产美女久久| 日韩欧美视频一区二区三区四区| 一二三区精品| 50一60岁老妇女毛片| 亚洲影院免费观看| a天堂视频在线| 久久精品小视频| 亚瑟国产精品| 亚洲一区二区三区欧美| 日本中文字幕一区二区有限公司| 国产又爽又黄无码无遮挡在线观看| 亚洲午夜一二三区视频| 99热这里只有精| 久久这里有精品视频| 男人亚洲天堂| 一区二区三区欧美在线| 免费视频最近日韩| 99久久99久久精品免费| 欧美中文一区二区三区| 69视频在线| 成人h视频在线| 国产精品久久久久久| 污污网站在线观看视频| 中文字幕一区在线观看视频| 亚洲一区中文字幕永久在线| 中文字幕一精品亚洲无线一区| 欧美va视频| 最新精品视频| 国产美女视频91| 九九九免费视频| 精品美女在线观看| 欧美aa免费在线| 日本精品一区二区三区视频 | 国产精品久久久久久久久久99| 深爱激情综合网| 国产91色在线观看| 1区2区3区国产精品| 亚洲成人中文字幕在线| 韩国19禁主播vip福利视频| 久久aimee| aaaaaa亚洲| 中文字幕日韩av资源站| 精品国产一级片| 91精品国产91久久久久久吃药| 亚洲制服一区| 国产成人在线综合| 亚洲成在人线在线播放| 欧洲毛片在线| 成人性生交大片免费看视频直播| 国产尤物精品| www.色天使| 欧美一区三区二区| 免费成人在线电影| 宅男噜噜99国产精品观看免费| 国产成人精品在线看| 丁香六月婷婷综合| 日韩一区二区av| 加勒比久久高清| jizz欧美激情18| 亚洲男人的天堂在线观看| 四虎永久在线观看| 国产精品视频久久久久| 尤物网精品视频| 四虎国产成人精品免费一女五男| 日韩午夜精品电影| 中文字幕在线直播| 亚洲天堂第一区| 久久女同精品一区二区| jizz中国女人| 国产成人精品日本亚洲| 亚洲午夜精品一区二区国产| www.免费av| 日韩视频在线观看一区二区| 欧美7777| www.av毛片| 成人免费在线播放视频|