Mysql通過frm&ibd恢復(fù)數(shù)據(jù)

       MySQL存儲在磁盤中,各種天災(zāi)人禍都會導(dǎo)致數(shù)據(jù)丟失。大公司的時候我們常常需要做好數(shù)據(jù)冷熱備,對于小公司來說要做好所有數(shù)據(jù)備份需要支出大量的成本,很多公司也是不現(xiàn)實(shí)的。萬一還沒有做好備份,數(shù)據(jù)被誤刪除了,或者ibdata損壞了怎么辦呢?別擔(dān)心,只要有部分的frm、ibd存在就可以恢復(fù)部分?jǐn)?shù)據(jù)。

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、瑯琊網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

注意:

一、這個是對innodb的數(shù)據(jù)恢復(fù)。myisam不需要這么麻煩,只要數(shù)據(jù)文件存在直接復(fù)制過去就可以。

二、大家的mysql數(shù)據(jù)庫必須是按表存放數(shù)據(jù)的,默認(rèn)不是,但是大家生產(chǎn)肯定是按分表設(shè)置的吧,如果不是,不好意思,這個方法不能恢復(fù)你的數(shù)據(jù)。

      my.ini的設(shè)置為 innodb_file_per_table = 1。

1、找回表結(jié)構(gòu),如果表結(jié)構(gòu)沒有丟失直接到下一步

a、先創(chuàng)建一個數(shù)據(jù)庫,這個數(shù)據(jù)庫必須是沒有表和任何操作的。

b、創(chuàng)建一個表結(jié)構(gòu),和要恢復(fù)的表名是一樣的。表里的字段無所謂。

 一定要是innodb引擎的。CREATE TABLE `test_table`( `jingfeng` char(20)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

c、關(guān)閉mysql, service mysqld stop; 

d、用需要恢復(fù)的frm文件覆蓋剛新建的frm文件;

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

f、 啟動mysql,service mysqld start;show create table test_table\G 就能看到表結(jié)構(gòu)信息了。

2、找回?cái)?shù)據(jù)。記得上面把 innodb_force_recovery改掉了,需要注釋掉,不然恢復(fù)模式不好操作。

  這里有個關(guān)鍵的問題,就是innodb里的任何數(shù)據(jù)操作都是一個日志的記錄點(diǎn)。

  也就是如果我們需要數(shù)據(jù)恢復(fù),必須把之前的表的數(shù)據(jù)的日志記錄點(diǎn)添加到一致。

a、建立一個數(shù)據(jù)庫,根據(jù)上面導(dǎo)出的創(chuàng)建表的sql執(zhí)行創(chuàng)建表。

b、找到記錄點(diǎn)。先要把當(dāng)前數(shù)據(jù)庫的表空間廢棄掉,使當(dāng)前ibd的數(shù)據(jù)文件和frm分離。 ALTER TABLE test_table DISCARD TABLESPACE;

c、把之前要恢復(fù)的 .ibd文件復(fù)制到新的表結(jié)構(gòu)文件夾下。 使當(dāng)前的ibd 和frm發(fā)生關(guān)系。ALTER TABLE test_table IMPORT TABLESPACE;  

這個時候沒有錯誤,說明已經(jīng)建立好了。如果能查到數(shù)據(jù),到此就OK了,如果不行,請執(zhí)行如下操作。

d、相比這里大家已經(jīng)知道為什么了,這個模式也不是說改了數(shù)據(jù)庫就可以在生產(chǎn)環(huán)境使用。更改 innodb_force_recovery=1 , 如果不成修改為 2,3,4,5,6。直到可以 查詢出數(shù)據(jù)為止,然后dump出來。數(shù)據(jù)就備份出來了。

e、把所有數(shù)據(jù)導(dǎo)出后,在新的數(shù)據(jù)庫導(dǎo)入。所有數(shù)據(jù)就生成了。

引自:http://www.cnblogs.com/logo-fox/p/6210533.html

網(wǎng)站題目:Mysql通過frm&ibd恢復(fù)數(shù)據(jù)
分享網(wǎng)址:http://bm7419.com/article34/ijhese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、域名注冊、定制開發(fā)、網(wǎng)站策劃ChatGPT、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化