庫表恢複是指僅恢複指定的部分庫或部分表到原叢集。例如遊戲業務中有時僅需恢複某個或某些玩家的資料,此時可使用庫表恢複方式。庫表恢複支援從備份組恢複和恢複到過去時間點兩種備份方式。本文介紹如何將指定的庫或表恢複到過去時間點。
簡介
PolarDB提供的庫表恢複功能,不會覆蓋和刪除原叢集中已有的庫表,不會將資料寫入原叢集的庫表中,而是在原叢集中建立庫表。您可以在庫表恢複過程中指定新的庫名或表名,通過指定庫和表的方式,將db1的備份資料恢複到db2。
庫表恢複過程中,不會影響原叢集資料庫的正常訪問,但可能會佔用原叢集的計算資源,從而導致叢集CPU和IOPS使用率升高。
適用範圍
叢集版本
庫表恢複功能支援PolarDB企業版和標準版,但對叢集的修訂版本有特定要求。不同情境下的最低版本要求如下表所示。
基礎功能:代表支援庫表恢複所需滿足的最低版本。
GDN主叢集/新版恢複流程:代表在全球資料庫(GDN)主叢集上使用,或想獲得新版恢複流程速度最佳化時,所需滿足的最低版本要求。
說明庫表恢複的新版恢複流程是在舊版的基礎上,對資料恢複至原叢集的速度進行了最佳化。其原理和速度可參見整體流程和預估時間。
版本系列 | MySQL 版本 | 架構 | 基礎功能(最低修訂版本) | GDN主叢集/新版恢複流程(最低修訂版本) |
企業版(叢集版) | 5.6 | X86 |
|
|
5.7 | X86 |
|
| |
8.0.1 | X86 |
|
| |
8.0.2 | X86 |
|
| |
標準版 | 5.6 | X86 |
|
|
5.7 | X86 |
|
| |
8.0.1 | X86 |
|
| |
倚天(ARM) |
|
| ||
8.0.2 | X86 |
|
|
您可在PolarDB MySQL版叢集的基本資料頁面的配置資訊地區查看當前叢集的核心版本。
其他限制
在使用庫表恢複功能時,請注意以下不支援的情境:
叢集:
不支援多主叢集(Limitless)和全球資料庫(GDN)中的從叢集。
在以下任一情況下,不支援對超過50,000張表的叢集進行庫表恢複:
儲存空間類型為ESSD雲端硬碟。
叢集中無唯讀(RO)節點。
表結構與索引:
不支援包含全域二級索引(GSI)的表。
不支援恢複列存索引(IMCI)。
儲存引擎:僅支援恢複InnoDB儲存引擎的表。
資料狀態:不支援恢複已歸檔為冷資料的表。
注意事項
當前庫表恢複方式中的恢複到過去時間點,只支援從一級備份的過去時間點恢複,不支援從二級備份恢複。
庫表恢複只會恢複指定的表,操作時請確認已選中所有需要恢複的表。
說明若無法確定所有涉及的表,建議您將整個叢集的歷史資料恢複到一個新叢集後再遷移至原叢集。更多詳情,請參見全量恢複方式1:從備份組恢複和全量恢複方式2:恢複到過去時間點。
在以下情境執行庫表恢複操作時,庫表恢複會執行失敗。
指定的庫名或表名在原叢集中已存在。
從備份組產生時間點到恢復點期間,恢複的表被刪除或叢集中存在與目標庫或目標表同名的庫表。
若選擇非整庫恢複,該庫每次最多支援恢複100張表。若選擇恢複庫,則支援恢複的表數量為該庫下所有的表。
說明若一次恢複的表數量太多,恢復會較長,因此不建議一次恢複過多表。
若您需要恢複的表數量較多,建議您選擇恢複全量歷史資料到新叢集中的方案,詳細操作步驟,請參見全量恢複方式1:從備份組恢複和全量恢複方式2:恢複到過去時間點。
叢集內的表(包括系統資料表)超過50000張時也可以使用庫表恢複功能。
說明該功能目前處於灰階階段,如需使用,您可以聯絡我們加入白名單,啟用該功能。
查詢叢集內的表(包括系統資料表)數量。SQL語句如下:
SELECT COUNT(*) FROM information_schema.tables;查詢叢集內的系統資料表數量。SQL語句如下:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN ('sys', 'performance_schema', 'mysql', 'information_schema', '__recycle_bin__');
庫表恢複功能不支援恢複觸發器(Trigger),若原表設定了Trigger,該Trigger不會被恢複。
庫表恢複功能不支援恢複外鍵(Foreign Key),若原表設定了Foreign Key,該Foreign Key不會被恢複。
操作步驟
登入PolarDB控制台,在左側導覽列單擊叢集列表,選擇叢集所在地區,並單擊目的地組群ID進入叢集詳情頁。
在左側導覽列中,選擇,單擊库(表)恢复。
在彈出的對話方塊中,選擇恢复方式為按时间点,並選擇需要恢复至的時間點。
說明恢复至的時間點選擇需符合可恢复时间点的限制,同時離該時間點最近一份全量備份組中必須存在需要恢複的表,才能正常使用按时间点恢複功能。可恢復點的範圍與備份設定中的日志备份保留期限有關,預設為7天。
庫表恢複功能根據所佔用的IOPS可分為快速、常規和安全三種配置,您可以根據實際需求進行選擇。恢複速度配置的預估耗時請參見庫表恢複速度測試資料參考。
快速:向當前叢集恢複資料期間,可能佔用大量IOPS(約60%),建議在業務低峰期選擇。
常規【推薦】:向當前叢集恢複資料期間,可能佔用部分IOPS(約30%)。
安全:向當前叢集恢複資料期間,僅佔用少量IOPS(約15%),可能會大幅影響恢複速度。
在需要恢复的库和表地區左側,選中需要恢複的目標庫,並在右側選中目標表。
說明若您未指定庫名和表名,則系統會通過在原庫名或原表名後添加
_backup的方式,來自動產生新的庫名和表名。如原表為test,則自動產生的新的表名為test_backup。若選中目標庫後但未指定具體的資料表,預設恢複該庫下的所有資料。
確認已選擇您需要恢複的庫和表後,單擊确定即可。
相關API
| API | 描述 |
| DescribeMetaList | 調用DescribeMetaList介面查看支援恢複的庫表元資訊詳情。 |
| RestoreTable | 調用RestoreTable恢複PolarDB庫表。 |