Mysql通過ibd檔案恢復資料的步驟詳解

大雄45 發表於 2022-07-18
MySQL
導讀 mysql在使用的過程中,難免遇到資料庫表誤操作,下面這篇文章主要給大家介紹了關於Mysql通過ibd檔案恢復資料的詳細步驟,文中通過例項程式碼介紹的非常詳細,需要的朋友可以參考下
恢復步驟

1、建立資料庫(隨意建立)

2、建立資料表(備註:表結構要和要恢復的表結構一致,row_format要和ibd檔案的row_format一致,否則,會提示兩者不一致。 當前row_format=dynamic)

3、表的屬性檢視

我們使用:show table status like ‘matlab’\G,檢視錶的屬性

備註:建立表時候的row_format和表屬性的不一致,基於innodb是,要把row_format設定成dynamic時,需要修改mysql的全域性配置,直接在myql 中修改:set global innodb_file_format=Barracuda;

4、表錯誤資訊檢視 show warnings

5、說明

我們在恢復表的時候,要保證row_format和ibd檔案的一致,如果ibd檔案是compact的話,需要建表的時候,設定成row_format=compact,在恢復的時候,自行解決,從第6步開始,重點說明如何去恢復。

6、恢復第一步:移除表空間

**alter table matlab DISCARD TABLESPACE;**

7、恢復第二步:將備份的ibd檔案,放到mysql->data->建立的資料庫名稱->,將ibd拷貝到此目錄下,如下圖所示
具體路徑檢視

-- 使用sql查詢資料目錄
**show global variables like '%datadir%';**

8、恢復第三步:重新匯入表空間

**alter table matlab IMPORT TABLESPACE;**

9、當執行到上一步完成後,我們發現資料庫中的資料已經完全恢復過來了

10、資料表的結構一定要和恢復前的資料表結構一致,否則恢復失敗,導致mysql程式重啟,詳細情況需要檢視mysql的error日誌進行分析,另外,mysql的CE工具提供了便捷的mysql引數配置修改功能

補充:Innodb與MyISAM儲存檔案的區別
Innodb儲存檔案分為:.frm,.idb
    .frm:儲存表定義
    .ibd:儲存資料和索引
MyISAM儲存檔案分為:.frm,.myd,.myi
    .frm:儲存表定義
    .myd:儲存資料
    .myi:儲存索引

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2906133/,如需轉載,請註明出處,否則將追究法律責任。