整体流程和预估时间

当发生部分表的误操作时,可进行库表恢复,将误操作的某张表或某些表恢复到原集群。

库表恢复分为按时间点恢复和按备份集(快照)恢复,两者的区别在于要恢复至的时间点是否是备份集的时间点。如果是备份集的时间点,则可选择按备份集(快照)恢复更方便。如果要恢复至的时间不是已有的备份集的时间点,则只能选择按时间点恢复。

说明

库表恢复新流程已在PolarDB MySQL8.0.1版本且小版本为8.0.1.1.48及以上版本灰度发布Fast Import新特性

整体流程

无论是按时间点恢复还是按备份集(快照)恢复,两者的关键流程是一致的:先创建一个临时节点,并将某个时间点的数据恢复至该节点,然后再将恢复出的数据恢复到原集群。

库表恢复新版已于20240403日发布,相比旧版,优化了向原集群恢复数据的时间,并且热备集群以及GDN从集群可自动同步数据,大幅减少了任务的恢复时间。

版本要求

  • 支持使用库表恢复新版的企业版集群版本要求如下:

    • PolarDB MySQL8.0.2版本,修订版本需为8.0.2.2.25.3及以上。

    • PolarDB MySQL8.0.1版本,修订版本需为8.0.1.1.44及以上。

    • PolarDB MySQL5.7版本,修订版本需为5.7.1.0.30及以上。

    • PolarDB MySQL5.6版本,修订版本需为5.6.1.0.42及以上。

  • 支持使用库表恢复新版的标准版集群版本要求如下:

    • PolarDB MySQL8.0.2版本,修订版本需为8.0.2.2.21及以上。

    • PolarDB MySQL8.0.1版本,修订版本需为8.0.1.1.38.2及以上。

    • PolarDB MySQL5.7版本,修订版本需为5.7.1.0.30及以上。

    • PolarDB MySQL5.6版本,修订版本需为5.6.1.0.42及以上。

新旧版本流程图

当集群的修订版本符合上述版本要求时,将自动进入库表恢复新版恢复流程。旧版和新版流程原理图如下:

image
说明

建议在业务低峰期进行数据恢复。

预估时间

各步骤预估耗时

步骤

预估耗时

创建一个临时节点,并将备份集中的数据恢复至该节点。

3~10分钟。

恢复Redo日志增量数据。

说明

仅按时间点恢复的方式需要恢复该类数据。耗时和需要应用的Redo日志大小相关。

1.5 GB/分钟。

将数据恢复至原集群。

预估耗时请参见库表恢复速度测试数据参考

说明
  • 以上数据仅供参考。

  • 如果待恢复的数据量达到TB级别,执行库表恢复操作可能耗时较长。如果想要快速恢复该数据,可使用备份集全量恢复,一般耗时几分钟。具体操作请参见全量恢复方式1:从备份集恢复

库表恢复速度测试数据参考

CPU和内存(独享)

测试数据

innodb_io_capacity

innodb_io_capacity_max

旧版流程

新版流程

新版较旧版恢复速度对比

是否开启存储热备

恢复耗时

恢复速度

恢复速度配置

恢复耗时

恢复速度

(旧版流程)是否开启存储热备

速度提升

28 GB

单表200 GB左右

4000

8000

3小时38分钟25

1.03 GB/分钟

常规

1小时43分钟36

2.16 GB/分钟

110%

2小时23分钟0

1.57 GB/分钟

38%

416 GB

单表200 GB左右

4000

8000

3小时3分钟31

1.14 GB/分钟

快速

5413

3.70GB/分钟

225%

88%

常规

1小时20

2.5GB/分钟

119%

1小时45分钟53

1.97 GB/分钟

27%

安全

2小时12

1.52GB/分钟

33%

-30%

8000

16000

3小时3分钟15

1.14 GB/分钟

快速

4218

4.76GB/分钟

318%

142%

常规

5416

3.70GB/分钟

225%

1小时45分钟53

1.97 GB/分钟

88%

安全

1小时20

2.5GB/分钟

119%

27%

832 GB

单表200 GB左右

4000

8000

2小时50分钟56

1.19 GB/分钟

快速

5439

3.70GB/分钟

211%

80%

常规

1小时21

2.47GB/分钟

108%

1小时38分钟57

2.05 GB/分钟

20%

安全

2小时12

1.52GB/分钟

28%

-35%

18000

36000

2小时51分钟5

1.19 GB/分钟

快速

4148

4.88GB/分钟

310%

273%

常规

5443

3.70GB/分钟

211%

1小时38分钟33

1.31 GB/分钟

182%

安全

1小时21

2.47GB/分钟

108%

89%

1664 GB

单表200 GB左右

4000

8000

2小时55分钟26

1.17 GB/分钟

快速

5328

3.77GB/分钟

222%

88%

常规

1小时20

2.5GB/分钟

114%

1小时42分钟20

2.01 GB/分钟

24%

安全

2小时12

1.52GB/分钟

30%

-32%

20000

40000

2小时53分钟49

1.19 GB/分钟

快速

411

4.88GB/分钟

310%

138%

常规

545

3.70GB/分钟

211%

1小时40分钟35

2.05 GB/分钟

80%

安全

1小时20

2.5GB/分钟

110%

22%

说明
  • 恢复速度是指将数据恢复到原集群的速度,不包括恢复流程中创建临时节点和恢复增量日志步骤中所消耗的时间。

  • 恢复速度与集群是否开启存储热备、集群主节点规格、innodb_io_capacity参数值大小、恢复速度配置以及待恢复的表数量有关。

  • 您可通过动态调整innodb_io_capacityinnodb_io_capacity_max的值来调节恢复速度。参数值调整后,对库表恢复旧版流程恢复速度影响较小,对新版流程的恢复速度影响较大。

  • 恢复速度根据所占用的IOPS分为快速常规安全三种配置。所占用的IOPS越多,实际恢复速度越快,尤其在大表恢复场景中,速度提升尤为明显。

  • 恢复速度配置对库表恢复旧版流程恢复速度影响较小,对新版流程的恢复速度影响较大。

  • 由于28 GB的规格较小,IO波动较大,恢复速度配置可能并不具有明显的效果,因此未列出恢复速度的测试结果。

  • 以上测试数据未包含表数量很多的情况,如果您指定恢复的表数量较多,也将会对恢复速度产生影响。

  • 以上测试数据仅供参考,实际恢复速度受底层机器机型、网络等因素影响。