库表恢复是指仅恢复指定的部分库或部分表到原集群。例如游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。库表恢复支持从备份集恢复和恢复到过去时间点两种备份方式。本文介绍如何从备份集恢复指定的库或表。
简介
PolarDB提供的库表恢复功能,不会覆盖和删除原集群中已有的库表,不会将数据写入原集群的库表中,而是在原集群中新建库表。您可以在库表恢复过程中指定新的库名或表名,通过指定库和表的方式,将db1
的备份数据恢复到db2
。
库表恢复过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPU和IOPS使用率升高。
版本要求和使用限制
版本要求
您可以通过查询版本号来确认集群版本。
当前PolarDB MySQL版的企业版和标准版都支持库表恢复功能,具体版本要求及限制如下。
PolarDB企业版支持库表恢复。目前仅集群版系列支持库表恢复功能,集群版本要求如下:
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及以上。
PolarDB标准版支持库表恢复,集群版本要求如下:
PolarDB MySQL版5.7版本X86架构,修订版本需为5.7.1.0.30及以上。
PolarDB MySQL版8.0.1版本X86架构,修订版本需为8.0.1.1.38.2及以上。
PolarDB MySQL版8.0.2版本X86架构,修订版本需为8.0.2.2.21及以上。
PolarDB MySQL版8.0.1版本倚天(ARM)架构,修订版本需为8.0.1.1.41及以上。
若存储类型为云盘,则不支持50000张表以上的库表恢复。
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.38.2及以上。
PolarDB MySQL版8.0.2版本,修订版本需为8.0.2.2.21及以上。
支持使用库表恢复新版的集群版本要求如下:
企业版
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.38.2及以上。
PolarDB MySQL版8.0.2版本,修订版本需为8.0.2.2.21及以上。
说明库表恢复新版是在库表恢复旧版的基础上,对数据恢复至原集群的速度进行了优化。其原理和速度可参见整体流程和预估时间。
使用限制
PolarDB多主集群(库表)不支持库表恢复。
不支持在包含全局二级索引(Global Secondary Index)的表上使用库表恢复功能。
如果实例没有RO节点,超过50000张表时将不支持库表恢复功能。
不支持在GDN中的从集群上使用库表恢复功能。
库表恢复功能不支持恢复列存索引。
不支持在归档为冷数据的表上使用库表恢复功能。
库表恢复功能只支持恢复以InnoDB为存储引擎的表。
若您当前集群不支持使用库表恢复功能,您可以通过全量恢复方式1:从备份集恢复或全量恢复方式2:恢复到过去时间点的方式将数据恢复到新的集群,再将数据迁移至原集群。
注意事项
当前库表恢复方式中的从备份集恢复,只支持从一级备份的备份集里恢复,不支持从二级备份恢复。
库表恢复只会恢复指定的表,操作时请确认已选中所有需要恢复的表。
说明若无法确定所有涉及的表,建议您将整个集群的历史数据恢复到一个新集群后再迁移至原集群。更多详情,请参见全量恢复方式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。
在左侧导航栏中,选择 。
在备份恢复页面,单击库(表)恢复。
在弹出的对话框中,选择恢复方式为按备份集,并在备份集列表中选择目标备份集。
在需要恢复的库和表区域左侧,选中需要恢复的目标库,并在右侧选中目标表。
说明若您未指定库名和表名,则系统会通过在原库名或原表名后添加
_backup
的方式,来自动生成新的库名和表名。如原表为test
,则自动生成的新的表名为test_backup
。若选中目标库后但未指定具体的数据表,默认恢复该库下的所有数据。
单击确定即可。
相关API
API | 描述 |
调用DescribeMetaList接口查看支持恢复的库表元信息详情。 | |
调用RestoreTable恢复PolarDB库表。 |