更新时间:2024-09-26 GMT+08:00
分享

将库表数据恢复到指定时间点

操作场景

为了保证数据的完整性,以及降低对原实例的性能影响,会进行库表级时间点恢复。库表级恢复是为选择的某个库表恢复到指定时间点。在进行库表级时间点恢复备份时,会从OBS备份空间中选择一个该时间点最近的全量备份下载到临时实例上进行全量恢复,再在临时实例上重放WAL到指定时间点,完成之后将对应库表的数据回写到原实例的目标库表,恢复时长和实例的数据量有关。

由于需要对实例的所有数据进行备份及恢复操作,对于数据量较大的实例,所需时间较长,请耐心等待。通过库表级时间点恢复备份,将不会导致实例数据被覆盖,您可以根据需要恢复库表。

RDS for PostgreSQL支持恢复单个实例的库表数据。

使用限制

  • 为避免恢复失败和对原数据产生影响,表级恢复会去除外键约束,继承关系,分区关系,触发器,重命名索引及相关联序列,库级恢复则不恢复订阅。
  • 表级恢复时,单个实例一次最多恢复20000张表。当需要恢复的表数量超过20000张时,建议您使用恢复到指定时间点功能进行恢复,具体请参考将数据库实例恢复到指定时间点
  • 库级恢复时,单个实例一次最多恢复2000个库,单个实例一次最多恢复20000张表。如果不满足条件,建议您使用恢复到指定时间点功能进行恢复,具体请参考将数据库实例恢复到指定时间点
  • RDS for PostgreSQL库表级时间点恢复期间不允许主备实例和只读实例做规格变更,重启,删除等操作。
  • 进行库表级时间点恢复时,要恢复的库、表信息是在所选时间点前最新一次全量备份中读取的。由于所选时间点可以是恢复时间区间内的任意时间点,所以库表级时间点恢复支持恢复到存在指定库、表信息的最早的一次全量备份时间点。
  • 如果恢复时间点表不存在,则恢复流程依旧会完成,但是不会产生对应的恢复数据。
  • 库表级时间点恢复不支持RDS for PostgreSQL增强版。

前提条件

由于该操作会在源实例上新生成恢复后的库表,请确保您的源实例磁盘空间充足。

恢复单个实例的库表数据

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. “实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  5. 在左侧导航栏,选择“备份恢复”,单击“库表时间点恢复”
  6. 填选恢复信息,单击“下一步:确认恢复信息”

    • 为了方便您操作,所需恢复的数据库和表名支持搜索。
    • 系统会自动生成以时间戳为后缀的库表名,如果需要,您也可以自定义恢复后的库表名。
    • 表名不能重复且满足:名称长度在1~64个字符之间,只能包含字母、数字、下划线、中划线或$,不能包含其他特殊字符并且不能与同库下的表名重名。
    • 不支持带中文的库名和表名恢复。
    • 不支持库名带“.”字符的数据库恢复。
    • 库级时间点恢复过程中,如果创建同名库,可能导致数据丢失。
    • 库级时间点恢复,单个实例一次最多恢复2000个库,单个实例一次最多恢复20000张表。
      图1 库表时间点恢复

  7. 信息确认无误后,单击“立即恢复”
  8. “实例管理”页面,可查看该实例状态为“恢复中”,恢复过程中该实例业务不中断。

    同时,您可在“任务中心”页面,查看“库表时间点恢复”任务的执行进度及结果。

    恢复成功后,您可根据实际情况对库表进行数据处理。

  • 恢复时长和实例的整体数据量有关,平均速度约为20MB/s。
  • 通过库表时间点恢复备份,不会影响新增数据。恢复出来是一个带有时间戳后缀的临时库表,用户可以根据实际情况对这个临时库表的数据进行处理。

后续操作

恢复成功后可以登录数据库实例进行验证。

相关文档