整體流程和預(yù)估時(shí)間
當(dāng)發(fā)生部分表的誤操作時(shí),可進(jìn)行庫(kù)表恢復(fù),將誤操作的某張表或某些表恢復(fù)到原集群。
庫(kù)表恢復(fù)分為按時(shí)間點(diǎn)恢復(fù)和按備份集(快照)恢復(fù),兩者的區(qū)別在于要恢復(fù)至的時(shí)間點(diǎn)是否是備份集的時(shí)間點(diǎn)。如果是備份集的時(shí)間點(diǎn),則可選擇按備份集(快照)恢復(fù)更方便。如果要恢復(fù)至的時(shí)間不是已有的備份集的時(shí)間點(diǎn),則只能選擇按時(shí)間點(diǎn)恢復(fù)。
整體流程
無(wú)論是按時(shí)間點(diǎn)恢復(fù)還是按備份集(快照)恢復(fù),兩者的關(guān)鍵流程是一致的:先創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn),并將某個(gè)時(shí)間點(diǎn)的數(shù)據(jù)恢復(fù)至該節(jié)點(diǎn),然后再將恢復(fù)出的數(shù)據(jù)恢復(fù)到原集群。
庫(kù)表恢復(fù)新版已于2024年04月03日發(fā)布,相比舊版,優(yōu)化了向原集群恢復(fù)數(shù)據(jù)的時(shí)間,并且熱備集群以及GDN從集群可自動(dòng)同步數(shù)據(jù),大幅減少了任務(wù)的恢復(fù)時(shí)間。
支持使用庫(kù)表恢復(fù)新版的企業(yè)版集群版本要求如下:
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及以上。
支持使用庫(kù)表恢復(fù)新版的標(biāo)準(zhǔn)版集群版本要求如下:
PolarDB MySQL版8.0.2版本,修訂版本需為8.0.2.2.21及以上。
PolarDB MySQL版8.0.1版本,修訂版本需為8.0.1.1.38.2及以上。
PolarDB MySQL版5.7版本,修訂版本需為5.7.1.0.30及以上。
PolarDB MySQL版5.6版本,修訂版本需為5.6.1.0.42及以上。
當(dāng)集群的修訂版本符合上述版本要求時(shí),將自動(dòng)進(jìn)入庫(kù)表恢復(fù)新版恢復(fù)流程。舊版和新版流程原理圖如下:
建議在業(yè)務(wù)低峰期進(jìn)行數(shù)據(jù)恢復(fù)。
預(yù)估時(shí)間
預(yù)估耗時(shí)如下,僅供參考:
步驟 | 預(yù)估耗時(shí) |
創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn),并將備份集中的數(shù)據(jù)恢復(fù)至該節(jié)點(diǎn) | 約3~10分鐘 |
恢復(fù)Redo日志增量數(shù)據(jù) 說(shuō)明 僅按時(shí)間點(diǎn)恢復(fù)的方式需要恢復(fù)該類(lèi)數(shù)據(jù)。耗時(shí)和需要應(yīng)用的Redo日志大小相關(guān)。 | 1.5 GB/分鐘 |
將數(shù)據(jù)恢復(fù)至原集群 | 預(yù)估耗時(shí)請(qǐng)參見(jiàn)表1 庫(kù)表恢復(fù)速度測(cè)試數(shù)據(jù)參考表。 |
如果待恢復(fù)的數(shù)據(jù)量達(dá)到TB級(jí)別,執(zhí)行庫(kù)表恢復(fù)操作可能耗時(shí)較長(zhǎng)。如果想要快速恢復(fù)該數(shù)據(jù),可使用備份集全量恢復(fù),一般耗時(shí)幾分鐘。具體操作請(qǐng)參見(jiàn)全量恢復(fù)方式1:從備份集恢復(fù)。
庫(kù)表恢復(fù)速度測(cè)試數(shù)據(jù)參考如下表,該表的恢復(fù)速度僅指將數(shù)據(jù)恢復(fù)到原集群的速度。
表1 庫(kù)表恢復(fù)速度測(cè)試數(shù)據(jù)參考表
CPU和內(nèi)存(獨(dú)享) | 測(cè)試數(shù)據(jù) | innodb_io_capacity | innodb_io_capacity_max | 是否開(kāi)啟存儲(chǔ)熱備 | 舊版流程恢復(fù)耗時(shí) | 新版流程恢復(fù)耗時(shí) | 舊版流程恢復(fù)速度 | 新版流程恢復(fù)速度 | 新版較舊版恢復(fù)速度提升 |
2核8 GB | 單表 224.06 GB | 4000 | 8000 | 是 | 3小時(shí)38分鐘25秒 | 1小時(shí)43分鐘36秒 | 1.03 GB/分鐘 | 2.16 GB/分鐘 | 111% |
否 | 2小時(shí)23分鐘0秒 | 1.57 GB/分鐘 | 38% | ||||||
4核16 GB | 單表 208.83 GB | 4000 | 8000 | 是 | 3小時(shí)3分鐘31秒 | 1小時(shí)36分鐘41秒 | 1.14 GB/分鐘 | 2.16 GB/分鐘 | 89% |
否 | 1小時(shí)45分鐘53秒 | 1.97 GB/分鐘 | 10 % | ||||||
8000 | 16000 | 是 | 3小時(shí)3分鐘15秒 | 1小時(shí)3分鐘49秒 | 1.14 GB/分鐘 | 3.27 GB/分鐘 | 187 % | ||
否 | 1小時(shí)45分鐘53秒 | 1.97 GB/分鐘 | 66 % | ||||||
8核32 GB | 單表 202.97 GB | 4000 | 8000 | 是 | 2小時(shí)50分鐘56秒 | 1小時(shí)28分鐘26秒 | 1.19 GB/分鐘 | 2.30 GB/分鐘 | 93% |
否 | 1小時(shí)38分鐘57秒 | 2.05 GB/分鐘 | 12% | ||||||
18000 | 36000 | 是 | 2小時(shí)51分鐘5秒 | 42分鐘39秒 | 1.19 GB/分鐘 | 4.76 GB/分鐘 | 301% | ||
否 | 1小時(shí)38分鐘33秒 | 1.31 GB/分鐘 | 131% | ||||||
16核64 GB | 單表 206.01 GB | 4000 | 8000 | 是 | 2小時(shí)55分鐘26秒 | 1小時(shí)31分鐘14秒 | 1.17 GB/分鐘 | 2.26 GB/分鐘 | 93% |
否 | 1小時(shí)42分鐘20秒 | 2.01 GB/分鐘 | 12% | ||||||
20000 | 40000 | 是 | 2小時(shí)53分鐘49秒 | 1小時(shí)0分鐘9秒 | 1.19 GB/分鐘 | 3.42 GB/分鐘 | 189% | ||
否 | 1小時(shí)40分鐘35秒 | 2.05 GB/分鐘 | 67% |
庫(kù)表恢復(fù)速度與集群是否開(kāi)啟存儲(chǔ)熱備、集群主節(jié)點(diǎn)規(guī)格、
innodb_io_capacity
參數(shù)值大小以及待恢復(fù)的表數(shù)量有關(guān)。以上測(cè)試數(shù)據(jù)未包含表數(shù)量很多的情況,如果用戶(hù)指定恢復(fù)的表數(shù)量較多,也將會(huì)對(duì)恢復(fù)速度產(chǎn)生影響。
您可通過(guò)動(dòng)態(tài)調(diào)整
innodb_io_capacity
和innodb_io_capacity_max
的值來(lái)調(diào)節(jié)恢復(fù)速度。參數(shù)值調(diào)整后,對(duì)庫(kù)表恢復(fù)舊版流程恢復(fù)速度影響較小,對(duì)新版流程的恢復(fù)速度影響較大。以上測(cè)試數(shù)據(jù)僅供參考,實(shí)際恢復(fù)速度受底層機(jī)器機(jī)型、網(wǎng)絡(luò)等因素影響。