库表恢复方式二:从备份集恢复

更新时间:2025-02-11 06:00:31

库表恢复是指仅恢复指定的部分库或部分表到原集群。例如,在游戏业务中有时仅需恢复某个或某些玩家的数据,此时可使用库表恢复方式。库表恢复支持从备份集恢复和恢复到过去时间点两种备份方式。本文介绍如何从备份集恢复指定的库或表。

简介

PolarDB提供的库表恢复功能,不会覆盖和删除原集群中已有的库表,不会将数据写入原集群的库表中,而是在原集群中新建库表。您可以在库表恢复过程中指定新的库名或表名,通过指定库和表的方式,将db1的备份数据恢复到db2

库表恢复过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPUIOPS使用率升高。

使用限制

  • 如果实例没有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不会被恢复。

操作步骤

  1. 登录PolarDB控制台,选择集群所在地域,在集群列表中单击目标集群ID进入详情页。

  2. 在左侧导航栏中,选择配置与管理 > 备份恢复

  3. 备份恢复页面,单击库(表)恢复

  4. 在弹出的对话框中,选择恢复方式按备份集,并在备份集列表中选择目标备份集。

    1

  5. 需要恢复的库和表区域左侧,选中需要恢复的目标库,并在右侧选中目标表。

    1

    说明
    • 若您未指定库名和表名,则系统会通过在原库名或原表名后添加_backup的方式,来自动生成新的库名和表名。如原表为test,则自动生成的新的表名为test_backup

    • 若选中目标库后但未指定具体的数据表,默认恢复该库下的所有数据。

  6. 单击确定即可。

    说明

    恢复过程中,集群状态为备份恢复中。该过程中,不会影响原集群数据库的正常访问,但可能会占用原集群的计算资源,从而导致集群CPUIOPS使用率升高。

相关API

API

描述

API

描述

DescribeMetaList - 查看支持恢复的库表信息详情

调用DescribeMetaList接口查看支持恢复的库表元信息详情。

RestoreTable - 恢复PolarDB实例的某些数据库或表到原实例

调用RestoreTable恢复PolarDB库表。

  • 本页导读 (1)
  • 简介
  • 使用限制
  • 注意事项
  • 操作步骤
  • 相关API
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等