数据恢复

更新时间:2025-03-21 07:49:00

本文介绍如何将云原生数据仓库AnalyticDB PostgreSQL实例的备份数据恢复到一个新实例。

注意事项

  • 恢复点是否可用与实例节点是否出现主动放弃归档行为密切相关。关于主动放弃归档的详情,请参见功能原理的日志备份描述。

  • 进行数据恢复操作前,请确保自上一次全量备份完成开始,到期望恢复到的一致性恢复点为止,这期间原实例各节点未曾发生过主动放弃归档行为。

    您可以提交工单联系技术支持协助确认对应恢复点可用性。

  • 源实例和新实例的实例资源类型必须是存储弹性模式

  • 源实例和新实例必须在同一地域下。

  • 新实例的存储空间必须等于或大于源实例。

  • 实例重建耗时取决于源实例中保有的数据量,耗时为小时级别。

操作步骤

  1. 登录云原生数据仓库AnalyticDB PostgreSQL版控制台
  2. 在控制台左上角,选择实例所在地域。
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中,单击备份恢复
  5. 数据备份恢复点页签中,找到目标备份,单击操作列的恢复

    数据恢复

  6. 克隆实例页面,进行如下配置。

    参数

    说明

    参数

    说明

    克隆源实例

    固定为需要恢复的源实例。

    克隆源类型

    固定为备份集

    克隆源备份集

    选择需要恢复的时间点。

    地域

    选择克隆实例所属的地域,默认与源实例一致。

    可用区

    根据需求选择新实例所属的可用区。

    网络类型

    选择目标实例的网络类型,固定为专有网络

    专有网络(VPC)

    选择专有网络VPCID。

    专有网络交换机

    选择专有网络下的交换机。

    实例资源类型

    选择实例资源类型,目前备份恢复功能仅支持存储弹性模式

    实例系列

    根据需求选择高性能(基础版)高可用版

    基础版目前仅部分地域和可用区开放,具体信息,请参见适用范围

    更多关于基础版的介绍,请参见高性能版实例

    引擎版本

    选择新实例的引擎版本。目前仅支持恢复至与源实例相同的引擎版本。

    master资源

    选择新实例的Master节点资源,Master节点规格必须大于或等于Segment节点规格。更多关于Master资源的介绍,请参见Master资源管理

    节点规格(segment)

    选择新实例的Segment节点规格。

    节点数量(segment)

    选择新实例的Segment节点数量。

    节点存储容量(segment)

    选择克隆实例的Segment节点的存储容量,存储容量必须大于或等于源实例。

    磁盘存储类型

    选择磁盘类型,支持的类型如下:

    • ESSD云盘 PL1(推荐)

    • ESSD云盘 PL0

    • ESSD云盘 PL2(高吞吐)

    更多关于磁盘存储类型的介绍,请参见变更磁盘存储类型

    加密类型

    选择加密类型。

    如果选择了云盘加密,则需要同时选择加密密钥

  7. 勾选服务协议

  8. 单击立即购买即可。

    说明

    创建新实例的过程中需要将源实例复制到新实例中,创建时间与源实例数据量有关,数据量越多耗时越久,创建时间为小时级别。

常见问题

如何恢复单表数据?

云原生数据仓库AnalyticDB PostgreSQL暂不支持直接恢复单表数据。不过,您可以通过以下步骤恢复单表数据。

  1. 参考上文的操作步骤,将原实例的数据恢复到同地域同VPC的新实例。

  2. 在原实例的外部数据源管理页面,将恢复的新实例添加为同构数据源。具体操作请参见同构数据源访问文档的步骤一。

  3. 在原实例中创建外表,映射到新实例中的单表。

    CREATE FOREIGN TABLE s01.t1(a int, b int) 
    	SERVER example_name OPTIONS(schema_name 's02', table_name 't1');
  4. 在原实例中,将要恢复数据的原表重命名。假设,原表的名称为testtable,重命名为testtable_old。

  5. 在原实例中,新建表并命名为原表名testtable,并将外表s01.t1的数据导入新建表。

    重要

    原表重命名、新建表以及导入数据时,请尽量停止向原表写入数据。如果写入了新数据,请您在数据导入完成后主动补数。

    CREATE TABLE testtable(a int, b int); 
    INSERT INTO testtable SELECT * FROM s01.t1;
  6. 确认导入数据无误后,释放恢复的新实例。

  • 本页导读 (1)
  • 注意事项
  • 操作步骤
  • 常见问题
  • 如何恢复单表数据?
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

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