1. 程式人生 > >Mysql ibd文件恢復指南

Mysql ibd文件恢復指南

如何 文件的 表屬性 拷貝 ack eat 創建 項目 不一致

背景

  mysql在使用的過程中,難免遇到數據庫表誤操作,基於此,作者親力親為,對mysql數據表ibd文件的恢復做以下詳細的說明,對開發或者初級dba提供一定的指導作用,博客中如若存在相關問題,請指明,相互學習,共同進步。

恢復說明

  1.   創建數據庫(隨意創建),create database yygk
  2. 創建數據表
    技術分享
    備註:row_format要和ibd文件的row_format一致,否則,會提示兩者不一致。 當前row_format=dynamic
  3. 表的屬性查看
    我們使用:show table status like ‘t_dict‘\G,查看表的屬性,截圖如下。
    技術分享

    備註:細心的我們發現,創建表時候的row_format和表屬性的不一致,基於innodb是,要把row_format設置成dynamic時,需要修改mysql的全局配置,直接在myql命令中修改:set global innodb_file_format=Barracuda;
  4. 表錯誤信息查看
    技術分享
    從錯誤日誌中我們發現:row_format設置失敗了,按照第3表中的說明,在myql命令中修改:set global innodb_file_format=Barracuda;然後重新創建表。
  5. 說明
    我們在恢復表的時候,要保證row_format和ibd文件的一致,如果ibd文件是compact的話,需要建表的時候,設置成row_format=compact,在恢復的時候,自行解決,從第6步開始,重點說明如何去恢復。
  6. 恢復第一步:移除表空間
    alter table t_dict DISCARD TABLESPACE;
  7. 恢復第二步:將備份的ibd文件,放到mysql->data->創建的數據庫名稱->,將ibd拷貝到此目錄下,如下圖所示
    技術分享
  8. 恢復第三步:重新導入表空間
    alter table t_dict IMPORT TABLESPACE;
  9. 後記
    當執行到上一步完成後,我們發現數據庫中的數據已經完全恢復過來了。贊。贊。贊 今後我對mysql進行下深入的學習,掌握dba的技能,應用於項目開發。完結!!!!

Mysql ibd文件恢復指南