一次innodb數(shù)據(jù)恢復(fù)實(shí)例 |
發(fā)布時(shí)間: 2012/9/5 17:05:18 |
周末的時(shí)候,開(kāi)發(fā)人員在使用一臺(tái)機(jī)器做測(cè)試,安裝了一個(gè)一鍵安裝包lnmp。結(jié)果把這臺(tái)機(jī)器上的原來(lái)rpm安裝的mysql-server搞掛了,后來(lái)不知道他們?cè)趺磁,把mysql-server存儲(chǔ)在/var/lib/mysql 下的文件損壞了一些 導(dǎo)致查找不到表里的數(shù)據(jù) .我本地登陸進(jìn)去后,發(fā)現(xiàn)沒(méi)有mysql這個(gè)庫(kù)了,繼續(xù)看表,可以顯示到表 ,但是找不到表里的數(shù)據(jù).看了下錯(cuò)誤日志,報(bào)沒(méi)有權(quán)限訪(fǎng)問(wèn)這個(gè)表。周一和北京那邊負(fù)責(zé)維護(hù)這臺(tái)機(jī)器的人聯(lián)系后,結(jié)果如下:沒(méi)有做備份,沒(méi)有二進(jìn)制日志,也不知道用得啥引擎。這臺(tái)機(jī)器交接給我們這邊的開(kāi)發(fā)人使用時(shí)沒(méi)有做特別說(shuō)明,開(kāi)發(fā)也不知道上面跑了個(gè)mysql,F(xiàn)在出了這個(gè)問(wèn)題,沒(méi)辦法,我來(lái)弄了只有.仔細(xì)檢查/var/lib/mysql 目錄下,確定引擎為innodb,共享數(shù)據(jù)庫(kù)文件還在,表的結(jié)構(gòu)文件也還在,redolog也還在,還好,問(wèn)題不大。接下來(lái)采用如下步驟恢復(fù)數(shù)據(jù)庫(kù): 1、恢復(fù)原數(shù)據(jù)庫(kù)的配置文件:包括日志大小 文件路徑等 2、在[mysqld]段中增加:innodb_force_recovery = 4 3、可以在另外地方建立新的數(shù)據(jù)庫(kù)并用原表的結(jié)構(gòu)創(chuàng)建表 4、將上一步中建立的.frm表文件拷貝到準(zhǔn)備恢復(fù)的數(shù)據(jù)庫(kù)中 5、啟動(dòng)數(shù)據(jù)庫(kù) 6、停止數(shù)據(jù)庫(kù) 注釋掉innodb_force_recovery = 4項(xiàng) 7、重新啟動(dòng)數(shù)據(jù)庫(kù),應(yīng)該可以用mysqldump導(dǎo)出數(shù)據(jù)了 表結(jié)構(gòu)文件應(yīng)該可以憑借你的記憶恢復(fù)關(guān)鍵是ibdata數(shù)據(jù)完好 用導(dǎo)出的sql重新入庫(kù)
本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |