[英]MySQL InnoDB database restore
我必須恢復在MySQL 5.0中無意中DROPped的數據庫。 從檢查備份文件,我似乎只有.FRM文件來保存數據庫數據。
任何人都可以建議這是否是我需要從備份執行數據庫恢復/導入,還是有其他文件我應該完成這個?
恢復innodb :(假設您的數據文件夾是C:\\ ProgramData \\ MySQL \\ MySQL Server 5.5 \\ data)
將3個ibdata文件復制到數據文件夾ex。 (C:\\ ProgramData \\ MySQL \\ MySQL Server 5.5 \\ data)
_ib_logfile0 _ib_logfile1 _ibdata1
通過文件右鍵單擊 - >屬性獲取以MB為單位的_ib_logfile0的大小(它應與_ib_logfile1相同)
編輯mysql配置文件(mysql \\ bin \\ my.ini),使innodb_log_file_size = 343M正好是ibdata文件大小
跑
mysqld --defaults-file = mysql \\ bin \\ my.ini --standalone --console --innodb_force_recovery = 6
現在您的數據應該回到您的數據庫中。 使用phpmysql或任何其他工具導出它們
哦,我...你遇到了麻煩。 關閉數據庫。 備份innodb文件。 祈禱你丟棄數據庫后沒有做任何事情。
Percona的人員(包括MySQL性能博客的作者)應該能夠幫助你: Percona緊急支持 。
如果您自己冒險,請隨身攜帶: Innodb數據恢復工具包 。
物流呢? 您必須閱讀每個頁面(計算機術語頁面...在Innodb的情況下為16k塊)並以此方式重建您的數據。 這是非常低級的工作(我們正在談論打開你的十六進制編輯器並開始計算字節,如果工具包沒有為你做的話),如果你不是一個經驗豐富的程序員,你將會受到傷害。
您可以在此處找到詳細解決方案:
http://www.unilogica.com/mysql-innodb-recovery/ (葡萄牙語文章)
除了innodb_force_recovery的標志之外,我還找到了另一個解決方案: innodb_file_per_table ,它將每個文件中的InnoDB表拆分為MyISAM表。
在崩潰恢復中,您可以丟失的數據少於單個文件ibdata1 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.