當發生部分表的誤操作時,可進行庫表恢複,將誤操作的某張表或某些表恢複到原叢集。
庫表恢複分為按時間點恢複和按備份組(快照)恢複,兩者的區別在於要恢複至的時間點是否是備份組的時間點。如果是備份組的時間點,則可選擇按備份組(快照)恢複更方便。如果要恢複至的時間不是已有的備份組的時間點,則只能選擇按時間點恢複。
整體流程
無論是按時間點恢複還是按備份組(快照)恢複,兩者的關鍵流程是一致的:先建立一個臨時節點,並將某個時間點的資料恢複至該節點,然後再將恢複出的資料恢複到原叢集。
庫表恢複新版已於2024年04月03日發布,相比舊版,最佳化了向原叢集恢複資料的時間,並且熱備叢集以及GDN從叢集可自動同步資料,大幅減少了任務的恢復。
支援使用庫表恢複新版的企業版叢集版本要求如下:
PolarDB MySQL版8.0.2版本,修訂版本需為8.0.2.2.25.3及以上。
PolarDB MySQL版8.0.1版本,修訂版本需為8.0.1.1.44及以上。
PolarDB MySQL版5.7版本,修訂版本需為5.7.1.0.30及以上。
PolarDB MySQL版5.6版本,修訂版本需為5.6.1.0.42及以上。
當叢集的修訂版本符合上述版本要求時,將自動進入庫表恢複新版恢複流程。舊版和新版流程原理圖如下:
建議在業務低峰期進行資料恢複。
預估時間
預估耗時如下,僅供參考:
步驟 | 預估耗時 |
建立一個臨時節點,並將備份組中的資料恢複至該節點 | 約3~10分鐘 |
恢複Redo日誌增量資料 說明 僅按時間點恢複的方式需要恢複該類資料。耗時和需要應用的Redo日誌大小相關。 | 1.5 GB/分鐘 |
將資料恢複至原叢集 | 預估耗時請參見表1 庫表恢複速度測試資料參考表。 |
如果待恢複的資料量達到TB層級,執行庫表恢複操作可能耗時較長。如果想要快速恢複該資料,可使用備份組全量恢複,一般耗時幾分鐘。具體操作請參見全量恢複方式1:從備份組恢複。
庫表恢複速度測試資料參考如下表,該表的恢複速度僅指將資料恢複到原叢集的速度。
表1 庫表恢複速度測試資料參考表
CPU和記憶體(獨享) | 測試資料 | innodb_io_capacity | innodb_io_capacity_max | 是否開啟儲存熱備 | 舊版流程恢複耗時 | 新版流程恢複耗時 | 舊版流程恢複速度 | 新版流程恢複速度 | 新版較舊版恢複速度提升 |
2核8 GB | 單表 224.06 GB | 4000 | 8000 | 是 | 3小時38分鐘25秒 | 1小時43分鐘36秒 | 1.03 GB/分鐘 | 2.16 GB/分鐘 | 111% |
否 | 2小時23分鐘0秒 | 1.57 GB/分鐘 | 38% | ||||||
4核16 GB | 單表 208.83 GB | 4000 | 8000 | 是 | 3小時3分鐘31秒 | 1小時36分鐘41秒 | 1.14 GB/分鐘 | 2.16 GB/分鐘 | 89% |
否 | 1小時45分鐘53秒 | 1.97 GB/分鐘 | 10 % | ||||||
8000 | 16000 | 是 | 3小時3分鐘15秒 | 1小時3分鐘49秒 | 1.14 GB/分鐘 | 3.27 GB/分鐘 | 187 % | ||
否 | 1小時45分鐘53秒 | 1.97 GB/分鐘 | 66 % | ||||||
8核32 GB | 單表 202.97 GB | 4000 | 8000 | 是 | 2小時50分鐘56秒 | 1小時28分鐘26秒 | 1.19 GB/分鐘 | 2.30 GB/分鐘 | 93% |
否 | 1小時38分鐘57秒 | 2.05 GB/分鐘 | 12% | ||||||
18000 | 36000 | 是 | 2小時51分鐘5秒 | 42分鐘39秒 | 1.19 GB/分鐘 | 4.76 GB/分鐘 | 301% | ||
否 | 1小時38分鐘33秒 | 1.31 GB/分鐘 | 131% | ||||||
16核64 GB | 單表 206.01 GB | 4000 | 8000 | 是 | 2小時55分鐘26秒 | 1小時31分鐘14秒 | 1.17 GB/分鐘 | 2.26 GB/分鐘 | 93% |
否 | 1小時42分鐘20秒 | 2.01 GB/分鐘 | 12% | ||||||
20000 | 40000 | 是 | 2小時53分鐘49秒 | 1小時0分鐘9秒 | 1.19 GB/分鐘 | 3.42 GB/分鐘 | 189% | ||
否 | 1小時40分鐘35秒 | 2.05 GB/分鐘 | 67% |
庫表恢複速度與叢集是否開啟儲存熱備、叢集主節點規格、
innodb_io_capacity
參數值大小以及待恢複的表數量有關。以上測試資料未包含表數量很多的情況,如果使用者指定恢複的表數量較多,也將會對恢複速度產生影響。
您可通過動態調整
innodb_io_capacity
和innodb_io_capacity_max
的值來調節恢複速度。參數值調整後,對庫表恢複舊版流程恢複速度影響較小,對新版流程的恢複速度影響較大。以上測試資料僅供參考,實際恢複速度受底層機器機型、網路等因素影響。