全部產品
Search
文件中心

:庫表恢複方式1:從備份組恢複

更新時間:Dec 27, 2024

庫表恢複是指僅恢複指定的部分庫或部分表到原叢集。例如遊戲業務中有時僅需恢複某個或某些玩家的資料,此時可使用庫表恢複方式。庫表恢複支援從備份組恢複和恢複到過去時間點兩種備份方式。本文介紹如何從備份組恢複指定的庫或表。

簡介

PolarDB提供的庫表恢複功能,不會覆蓋和刪除原叢集中已有的庫表,不會將資料寫入原叢集的庫表中,而是在原叢集中建立庫表。您可以在庫表恢複過程中指定新的庫名或表名,通過指定庫和表的方式,將db1的備份資料恢複到db2

庫表恢複過程中,不會影響原叢集資料庫的正常訪問,但可能會佔用原叢集的計算資源,從而導致叢集CPU和IOPS使用率升高。

版本要求和使用限制

版本要求

說明

您可以通過查詢版本號碼來確認叢集版本。

  • 當前PolarDB MySQL版叢集的產品版本企業版,且叢集系列叢集版時,支援使用庫表恢複功能,具體版本要求及限制如下:

    • PolarDB MySQL版5.6版本,修訂版本需為5.6.1.0.25及以上。

    • PolarDB MySQL版5.7版本,修訂版本需為5.7.1.0.8及以上。

    • PolarDB MySQL版8.0.1版本,修訂版本需為8.0.1.1.14及以上。

    • PolarDB MySQL版8.0.2版本,修訂版本需為8.0.2.2.0及以上。

  • GDN中的主叢集支援庫表恢複功能,企業版叢集版本要求如下:

    • PolarDB MySQL版5.6版本,修訂版本為5.6.1.0.42及以上。

    • PolarDB MySQL版5.7版本,修訂版本需為5.7.1.0.30及以上。

    • PolarDB MySQL版8.0.1版本,修訂版本需為8.0.1.1.44及以上。

    • PolarDB MySQL版8.0.2版本,修訂版本需為8.0.2.2.25.3及以上。

  • 支援使用庫表恢複新版的企業版叢集版本要求如下:

    • PolarDB MySQL版5.6版本,修訂版本為5.6.1.0.42及以上。

    • PolarDB MySQL版5.7版本,修訂版本需為5.7.1.0.30及以上。

    • PolarDB MySQL版8.0.1版本,修訂版本需為8.0.1.1.44及以上。

    • PolarDB MySQL版8.0.2版本,修訂版本需為8.0.2.2.25.3及以上。

    說明

    庫表恢複新版是在庫表恢複舊版的基礎上,對資料恢複至原叢集的速度進行了最佳化。其原理和速度可參見整體流程和預估時間

使用限制

  • PolarDB多主叢集(庫表)不支援庫表恢複。

  • 不支援在包含全域二級索引(Global Secondary Index)的表上使用庫表恢複功能。

  • 如果執行個體沒有RO節點,超過50000張表時將不支援庫表恢複功能。

  • 不支援在GDN中的從叢集上使用庫表恢複功能。

  • 庫表恢複功能不支援恢複列存索引。

  • 不支援在歸檔為冷資料的表上使用庫表恢複功能。

  • 庫表恢複功能只支援恢複以InnoDB為儲存引擎的表。

說明

若您當前叢集不支援使用庫表恢複功能,您可以通過全量恢複方式1:從備份組恢複全量恢複方式2:恢複到過去時間點的方式將資料恢複到新的叢集,再將資料移轉至原叢集。

注意事項

  • 當前庫表恢複方式中的從備份組恢複,只支援從一級備份的備份組裡恢複,不支援從二級備份恢複。

  • 庫表恢複只會恢複指定的表,操作時請確認已選中所有需要恢複的表。

    說明

    若無法確定所有涉及的表,建議您將整個叢集的歷史資料恢複到一個新叢集後再遷移至原叢集。更多詳情,請參見全量恢複方式1:從備份組恢複全量恢複方式2:恢複到過去時間點

  • 執行庫表恢複操作時,若指定的庫名或表名在原叢集中已存在,則庫表恢複會失敗。

  • 若選擇非整庫恢複,該庫每次最多支援恢複100張表。若選擇恢複庫,則支援恢複的表數量為該庫下所有的表。

    說明
  • 叢集內的表(包括系統資料表)超過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不會被恢複。

操作步驟

  1. 登入PolarDB控制台

  2. 在左側導覽列單擊叢集列表

  3. 在左上方,選擇叢集所在地區。

  4. 找到目的地組群,單擊叢集ID。

  5. 在左側導覽列中,選擇配置与管理 > 备份恢复

  6. 备份恢复頁面,單擊库(表)恢复

  7. 在彈出的對話方塊中,選擇恢复方式按备份集,並在備份組列表中選擇目標備份組。

    1

  8. 需要恢复的库和表地區左側,選中需要恢複的目標庫,並在右側選中目標表。

    1

    說明
    • 若您未指定庫名和表名,則系統會通過在原庫名或原表名後添加_backup的方式,來自動產生新的庫名和表名。如原表為test,則自動產生的新的表名為test_backup

    • 若選中目標庫後但未指定具體的資料表,預設恢複該庫下的所有資料。

  9. 單擊确定即可。

相關API

API

描述

DescribeMetaList - 查看支援恢複的庫表資訊詳情

調用DescribeMetaList介面查看支援恢複的庫表元資訊詳情。

RestoreTable - 恢複PolarDB執行個體的某些資料庫或表到原執行個體

調用RestoreTable恢複PolarDB庫表。