Mysql5.7利用frm與ibd恢復資料

tangyunoracle發表於2019-10-14

Mysql5.7利用frm與ibd恢復資料

1、新建一個同名資料庫,並且在裡面新建一張表同名的表,欄位隨意。

---如果有原來表的表結構,那這步可以省略

將my.cnf配置檔案增加innodb_force_recovery=6

2、把備份的.frm檔案覆蓋新建表的.frm檔案,修改檔案屬主和許可權,重啟資料庫,這個時候會在err檔案提示你表結構的欄位數不一致

3、重複再新建一張表同名的表,欄位數和提示的一樣多,欄位名字型別隨意

4、把備份的.frm檔案覆蓋新建表的.frm檔案,修改檔案屬主和許可權,重啟資料庫;這樣表結構就恢復出來了。

5、根據表結構,再重建新的表,指定表的ROW_FORMAT屬性,ROW_FORMAT=COMPACT;

CREATE TABLE ty (

  id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵',

  valid int(11) DEFAULT '1' COMMENT '是否有效 1:有效 0:無效',

  rel varchar(25) DEFAULT NULL,

  PRIMARY KEY (id)

) DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

這樣,表結構就算是恢復完了。

6、恢復資料

在指定的資料庫中執行丟棄表空間命令

alter table ty discard tablespace;

7、複製原來的ibd檔案,並覆蓋新建表ibd,並修改許可權

chown mysql.mysql ty.ibd

8、匯入表空間

alter table ty import tablespace;

這樣整個資料就恢復回來了。


---------End-By-TangYun-----2019.10.14--------------

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

相關文章