資料恢復 2 ibd

2021-07-23 16:25:17 字數 844 閱讀 3188

一、找回表結構,如果表結構沒有丟失直接到下一步

a、先建立乙個資料庫,這個資料庫必須是沒有表和任何操作的。

b、建立乙個表結構,和要恢復的表名是一樣的。表裡的字段無所謂。一定要是innodb引擎的。

create

table

`test`( `testid` bigint(20)) engine=innodb default charset=utf8;

c、關閉mysql, service mysqld stop;

d、用需要恢復的frm檔案覆蓋剛新建的frm檔案;

e、修改my.ini 裡 innodb_force_recovery=1 , 如果不成修改為 2,3,4,5,6。

f、 啟動mysql,service mysqld start;show create table test就能夠看到表結構資訊了。

二、找回資料

a、建立乙個資料庫,根據上面匯出的建立表的sql執行建立表。

b、找到記錄點。先要把當前資料庫的表空間廢棄掉,使當前ibd的資料檔案和frm分離。

alter

table test discard tablespace;

d、把之前要恢復的 .ibd檔案複製到新的表結構資料夾下,frm 保留。 使當前的ibd 和frm發生關係。
alter

table test import tablespace;

d、將恢復好的資料匯出就行了

frm和 ibd恢復資料

昨日晚上開發告訴我不小心truncate兩個表的資料,要求還原。結果在阿里雲上找到了備份內容,結果是物理備份檔案.frm ibd。心中一萬個草泥馬啊。沒辦法,開始還原吧。1 檢視測試機mysql配置檔案位置 root localhost mysql which mysqld usr sbin mys...

mysql由 frm和 ibd恢復資料

資料小常識 frm存放資料庫的表結構 ibd存放資料內容 1 建立資料庫 2 建立需要恢復的表 這樣就會在對應的資料庫下產生.frm和.ibd檔案 跳坑 建立表時候的字段和需要被恢復的表的一致 3 執行 alter table 表名字 discard tablespace 比如 alter tabl...

通過frm和ibd恢復資料庫

新建空的資料庫,匯入上述表結構 刪除對應的表空間,將表對應的ibd檔案複製到資料目錄下 重新插入表空間 mysql 備份var目錄,初始化資料庫mysqld initialize insecure通過mysqlfrm可以從frm中獲取表結構 新建空的資料庫,匯入上述表結構 刪除對應的表空間,將表對應...