小明在某次操作中,誤操作導(dǎo)致誤刪除了某個表,需要立即進行數(shù)據(jù)恢復(fù)。

如果是數(shù)據(jù)量較小的實例,并且有備份,即便是全備,做一次全量恢復(fù),然后單表導(dǎo)出導(dǎo)入,雖然麻煩一點,卻也花不了多少時間;如果是數(shù)據(jù)量大的實例,但分表備份的話,那么直接導(dǎo)入的話也是可以的。

現(xiàn)實中往往是比較殘酷的,我們很可能是全量備份,加上增量備份的備份策略,那么這樣的代價就比較大了。

全量備份恢復(fù),再加上 N 個增量的恢復(fù),上百 G 甚至上 T 的數(shù)據(jù),在等數(shù)據(jù)恢復(fù)、拷貝數(shù)據(jù)庫、追同步完成的過程中,估計你后面已經(jīng)站滿了領(lǐng)導(dǎo)/(ㄒoㄒ)/~~

本文主要介紹利用 XtraBackup 備份工具來實現(xiàn)單表快速恢復(fù),在緊急數(shù)據(jù)恢復(fù)場景下,用最短的時間來恢復(fù)數(shù)據(jù),最大程度降低損失。

在 MySQL 5.6 之前,對基于 InnoDB 存儲引擎的表,即便開啟 innodb_file_per_table 選項,也是無法通過復(fù)制數(shù)據(jù)文件來達到在不同實例之間復(fù)制表的目的的。

但是,通過 Percona XtraBackup 可以導(dǎo)出任意基于 InnoDB 存儲引擎,并且使用獨立表空間的表,還可以把它們導(dǎo)入到 啟用了 XtraDB 存儲引擎的 Percona Server 或者 MySQL 5.6 中(源庫不要求必須是使用 XtraDB 存儲引擎或者 MySQL 5.6,但目標(biāo)庫要求必須)。這只適用于使用獨立 .ibd 文件的表,不能導(dǎo)出沒有 .ibd 文件的表。

注意:

如果你使用的 Percona Server 版本早于 5.5.10-20.1,變量 innodb_expand_import 應(yīng)該換成 innodb_import_table_from_xtrabackup

導(dǎo)出表(Exporting tables)

導(dǎo)出表是在準(zhǔn)備階段完成,而不是在創(chuàng)建備份的時候。一旦創(chuàng)建完成了一個備份,使用 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式