库表恢复是指仅恢复指定的部分库或部分表到原集群。例如游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。库表恢复支持从备份集恢复和恢复到过去时间点两种备份方式。本文介绍如何将指定的库或表恢复到过去时间点。
简介
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张表。若选择恢复库,则支持恢复的表数量为该库下所有的表。
说明若一次恢复的表数量太多,恢复时间会较长,因此不建议一次恢复过多表。
若您需要恢复的表数量较多,建议您选择恢复全量历史数据到新集群中的方案,详细操作步骤,请参见全量恢复方式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。
在左侧导航栏中,选择 。
- 在备份恢复页面,单击库(表)恢复。
在弹出的对话框中,选择恢复方式为按时间点,并选择需要恢复至的时间点。
说明恢复至的时间点选择需符合可恢复时间点的限制,同时离该时间点最近一份全量备份集中必须存在需要恢复的表,才能正常使用按时间点恢复功能。可恢复时间点的范围与备份设置中的日志备份保留期限有关,默认为7天。
在需要恢复的库和表区域左侧,选中需要恢复的目标库,并在右侧选中目标表。
说明若您未指定库名和表名,则系统会通过在原库名或原表名后添加
_backup
的方式,来自动生成新的库名和表名。如原表为test
,则自动生成的新的表名为test_backup
。若选中目标库后但未指定具体的数据表,默认恢复该库下的所有数据。
单击确定即可。
相关API
API | 描述 |
DescribeMetaList | 调用DescribeMetaList接口查看支持恢复的库表元信息详情。 |
RestoreTable | 调用RestoreTable恢复PolarDB库表。 |