讓一隻大貓咪在打字機上隨機地按鍵,當按鍵時間達到無窮時,幾乎必然能夠打出任何給定的文字,比如你看到的這個網誌。

從 InnoDB 的 ibd 和 frm 檔案恢復 MariaDB 資料

由於一些原因,MariaDB 出問題了,提示

Table 'tbl_name' doesn't exist

好在 MariaDB 的容器Container預設啓用 InnoDB File-Per-Table Tablespaces。其他方式恢復無果後打算直接從 .ibd 恢復資料。

  1. 新建一個 database;
  2. mysqlfrm 或者 dbsake 讀取原先的 .frm 獲得 schema;
  3. 用原先的 schema 重建 table,但去掉除 PRIMARY KEY 外的所有 KEYS
  4. 執行 ALTER TABLE table_name DISCARD TABLESPACE;
  5. 將舊有的 .frm.ibd 複製到新 database 的資料夾內;
  6. 執行 ALTER TABLE table_name IMPORT TABLESPACE;

基本上,如果 .ibd 還正常的話就可以看到 columns 了,最起碼能恢復一些資料備用。

更多參考:

添加新评论