库表恢复是指仅恢复指定的部分库或部分表到原集群。例如,在游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。库表恢复支持从备份集恢复和恢复到过去时间点两种备份方式。本文介绍如何从备份集恢复指定的库或表。
简介
PolarDB提供的库表恢复功能,不会覆盖和删除原集群中已有的库表,不会将数据写入原集群的库表中,而是在原集群中新建库表。您可以在库表恢复过程中指定新的库名或表名,通过指定库和表的方式,将db1
的备份数据恢复到db2
。
库表恢复过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPU和IOPS使用率升高。
使用限制
如果实例没有RO节点,超过50000张表时将不支持库表恢复功能。
库表恢复功能不支持恢复列存索引。
若您当前集群不支持使用库表恢复功能,您可以通过全量恢复方式一:按时间点恢复或全量恢复方式二:按备份集(快照)恢复的方式将数据恢复到新的集群,再将数据迁移至原集群。
注意事项
当前库表恢复方式中的从备份集恢复,只支持从一级备份的备份集里恢复,不支持从二级备份恢复。
库表恢复只会恢复指定的表,操作时请确认已选中所有需要恢复的表。
若无法确定所有涉及的表,建议您将整个集群的历史数据恢复到一个新集群后再迁移至原集群。更多详情,请参见全量恢复方式一:按时间点恢复和全量恢复方式二:按备份集(快照)恢复。
执行库表恢复操作时,若指定的库名或表名在原集群中已存在,则库表恢复会失败。
若选择非整库恢复,该库每次最多支持恢复100张表。若选择恢复库,则支持恢复的表数量为该库下所有的表。
若一次恢复的表数量太多,恢复时间会较长,因此不建议一次恢复过多表。
若您需要恢复的表数量较多,建议您选择恢复全量历史数据到新集群中的方案,详细操作步骤,请参见全量恢复方式一:按时间点恢复和全量恢复方式二:按备份集(快照)恢复
集群内的表(包括系统表)超过50000张时也可以使用库表恢复功能。
该功能目前处于灰度阶段,如需使用,您可以联系我们加入白名单,启用该功能。
查询集群内的表(包括系统表)数量。SQL语句如下:
SELECT COUNT(*) FROM information_schema.tables;
查询集群内的系统表数量。SQL语句如下:
SELECT COUNT(*) FROM pg_class WHERE oid < 16384 AND relkind = 'r';
库表恢复功能不支持恢复触发器(Trigger),若原表设置了Trigger,该Trigger不会被恢复。
库表恢复功能不支持恢复外键(Foreign Key),若原表设置了Foreign Key,该Foreign Key不会被恢复。
操作步骤
登录PolarDB控制台,选择集群所在地域,在集群列表中单击目标集群ID进入详情页。
在左侧导航栏中,选择 。
在备份恢复页面,单击库(表)恢复。
在弹出的对话框中,选择恢复方式为按备份集,并在备份集列表中选择目标备份集。
在需要恢复的库和表区域左侧,选中需要恢复的目标库,并在右侧选中目标表。
若您未指定库名和表名,则系统会通过在原库名或原表名后添加
_backup
的方式,来自动生成新的库名和表名。如原表为test
,则自动生成的新的表名为test_backup
。若选中目标库后但未指定具体的数据表,默认恢复该库下的所有数据。
单击确定即可。
恢复过程中,集群状态为备份恢复中。该过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPU和IOPS使用率升高。
相关API
API | 描述 |
API | 描述 |
调用DescribeMetaList接口查看支持恢复的库表元信息详情。 | |
调用RestoreTable恢复PolarDB库表。 |
- 本页导读 (1)
- 简介
- 使用限制
- 注意事项
- 操作步骤
- 相关API