一次innodb數據恢復實例 |
發布時間: 2012/9/5 17:05:18 |
周末的時候,開發人員在使用一臺機器做測試,安裝了一個一鍵安裝包lnmp。結果把這臺機器上的原來rpm安裝的mysql-server搞掛了,后來不知道他們怎么弄的,把mysql-server存儲在/var/lib/mysql 下的文件損壞了一些 導致查找不到表里的數據 .我本地登陸進去后,發現沒有mysql這個庫了,繼續看表,可以顯示到表 ,但是找不到表里的數據.看了下錯誤日志,報沒有權限訪問這個表。周一和北京那邊負責維護這臺機器的人聯系后,結果如下:沒有做備份,沒有二進制日志,也不知道用得啥引擎。這臺機器交接給我們這邊的開發人使用時沒有做特別說明,開發也不知道上面跑了個mysql,F在出了這個問題,沒辦法,我來弄了只有.仔細檢查/var/lib/mysql 目錄下,確定引擎為innodb,共享數據庫文件還在,表的結構文件也還在,redolog也還在,還好,問題不大。接下來采用如下步驟恢復數據庫: 1、恢復原數據庫的配置文件:包括日志大小 文件路徑等 2、在[mysqld]段中增加:innodb_force_recovery = 4 3、可以在另外地方建立新的數據庫并用原表的結構創建表 4、將上一步中建立的.frm表文件拷貝到準備恢復的數據庫中 5、啟動數據庫 6、停止數據庫 注釋掉innodb_force_recovery = 4項 7、重新啟動數據庫,應該可以用mysqldump導出數據了 表結構文件應該可以憑借你的記憶恢復關鍵是ibdata數據完好 用導出的sql重新入庫
本文出自:億恩科技【www.endtimedelusion.com】 |