僅使用 .frm、.ibd 文件恢復數據庫
今天,我很高興失去了所有數據庫。
幸運的是,我的
data
文件夾仍然完好無損,並且包含所有.frm
文件.ibd
。Google搜尋了幾個小時,我想出了一個解決方案,幫助我重新創建
.sql
文件和表結構,然後導入.ibd
文件。所有這一切的最大幫手是
mysqlfrm
,我發現它已停產。不確定沒有它我是否能夠做到這一點。這是我的過程:
將表導出到
.sql
文件mysqlfrm --server=root:root@127.0.0.1 ./*.frm --port 3301 > ./dbtables.sql
獲取所有創建表命令,以便更輕鬆地丟棄/導入表。這與
dbtables.sql
文件一起用於獲取所有實例,create table
因此更容易查找和替換ALTER TABLE mytable DISCARD TABLESPACE
/IMPORT TABLESPACE
。^[CREATETABLE].*+$
丟棄
.ibd
文件命令:ALTER TABLE mytable DISCARD TABLESPACE;
丟棄後,將
.ibd
數據庫文件夾中的文件複製到“實時”版本中。導入
.ibd
文件命令:ALTER TABLE wp_actionscheduler_actions IMPORT TABLESPACE;
您知道僅使用
.frm
,.ibd
文件來恢復數據庫的現代方法嗎?Google 和 Stack Overflow 主要指向不再起作用的舊方法/工具。
任何作業系統的解決方案都會很棒,因為我可以訪問所有作業系統,因此希望可以毫無問題地測試它們。
雖然可能有辦法做到這一點,但我不建議您將其視為任何類型的“恢復”策略。
您知道僅使用 .frm、.ibd 文件來恢復數據庫的現代方法嗎?
不。
您知道恢復數據庫的現代方法嗎…?
是的。
來自您為此目的明確採取的備份。
在發生此類事件後嘗試“修復”數據庫文件就像嘗試啟動汽車並在高速撞到磚牆後將其開走……當然;它可能會起作用,如果你非常非常
$$ un $$幸運,但你完全不知道引擎蓋下可能潛伏著什麼其他危險。 將您的數據庫恢復到已知的良好狀態(您的最後一次備份)並從那裡繼續前進。
這是一個真理,很多時候,學會了艱難的道路,但是……
您沒有至少兩個副本的任何數據都是您不關心失去的數據……
有些人甚至建議走得更遠!閱讀有關三份規則的資訊…