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

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

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

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

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

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

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

注意:

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

導出表(Exporting tables)

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

網(wǎng)友評論