在 DynamoDB 中启用时间点恢复 - Amazon DynamoDB

在 DynamoDB 中启用时间点恢复

Amazon DynamoDB 时间点恢复 (PITR) 提供 DynamoDB 表数据的自动备份。本部分概述在 DynamoDB 中此过程如何运行。

注意

DynamoDB 根据每个 DynamoDB 表的大小(包括表数据和本地二级索引)收取 PITR 费用。更改恢复时段(例如,从 35 天更改为 1 天)并不会降低价格。无论您选择哪个恢复期,费用都保持不变。所配置的最大恢复期不会影响您开启 PITR 所支付的费用。为了确定您的备份费用,DynamoDB 会持续监控已开启 PITR 的表的大小。在您为每个表关闭 PITR 之前,您需要按照 PITR 使用量付费。

启用时间点恢复

您可以使用 AWS Management Console、AWS Command Line Interface (AWS CLI) 或 DynamoDB API 来启用时间点恢复。启用后,时间点恢复将提供持续备份,直到您明确将其关闭。

在启用时间点恢复后,您可以还原到 EarliestRestorableDateTimeLatestRestorableDateTime 之间的任何时间点。LatestRestorableDateTime 通常比当前时间早 5 分钟。有关更多信息,请参阅 将 DynamoDB 表还原到某个时间点

注意

时间点恢复过程始终还原到新表。

启用 PITR(控制台)

使用 DynamoDB 控制台启用 PITR
  1. 导航到 DynamoDB 控制台。

  2. 从左侧导航栏中选择,然后选择您的 DynamoDB 表。

  3. 备份选项卡中,对于时间点故障恢复选项,选择编辑

  4. 选择开启时间点故障恢复

  5. 为备份恢复期选择 1 到 35 天之间的值。这表示可以恢复连续备份的最大时间范围。

启用 PITR(AWS CLI)

注意

如果您在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。确保您使用最新的 AWS CLI 版本。

在开启了 point-in-time-recovery-specification 设置的情况下运行 update-continuous-backups 命令:

aws dynamodb update-continuous-backups \ --table-name Music \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true,RecoveryPeriodInDays=35

启用 PITR(AWS CloudFormation)

在开启了 PointInTimeRecoverySpecification 属性的情况下使用 AWS::DynamoDB::Table 资源:

Resources: iotCatalog: Type: AWS::DynamoDB::Table Properties: ... PointInTimeRecoverySpecification: PointInTimeRecoveryEnabled: true RecoveryPeriodInDays: 35

请求语法示例:

{ "PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": boolean, "RecoveryPeriodInDays: number }, "TableName": "string" }

启用 PITR(API)

在开启了 PointInTimeRecoverySpecification 参数的情况下运行 UpdateContinuousBackups API 操作。

请求语法示例:

{ "PointInTimeRecoverySpecification": { "PointInTimeRecoveryEnabled": boolean, "RecoveryPeriodInDays" : number }, "TableName": "string" }

响应语法示例:

{ "ContinuousBackupsDescription": { "ContinuousBackupsStatus": "string", "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "string", "EarliestRestorableDateTime": number, "RecoveryPeriodInDays": number, "LatestRestorableDateTime": number } } }

Python

import boto3 dynamodb = boto3.client('dynamodb') response = dynamodb.update_continuous_backups( TableName=<table_name>, PointInTimeRecoverySpecification={ 'PointInTimeRecoveryEnabled': True, 'RecoveryPeriodInDays': 35 } )

恢复期

可以将连续备份的恢复期设置为 1 到 35 天之间的任何数字。此 RecoveryPeriodInDays 决定了保持连续备份的时间段。例如,如果将此值设置为 30 天,则只能将表还原到过去 30 天的任何时间点。

注意

DynamoDB 根据每个 DynamoDB 表的大小(包括表数据和本地二级索引)收取 PITR 费用。所配置的最大恢复期不会影响您开启 PITR 所支付的费用。有关定价的详细信息,请参阅 DynamoDB 定价

编辑 PITR

您可以编辑表上的 PITR 设置并更改恢复期。如果您更改恢复期并将其增加到高于先前设置的值,EarliestRestorePoint 并不会立即更改。由于恢复期是一个滚动时间窗口,因此 DynamoDB 将继续进行自动备份,直到达到延长后的新期限。如果您更改恢复期并将其缩短到低于先前设置的值,EarliestRestorePoint 将立即缩小以匹配您的恢复期,并且任何在新设置值范围之外的连续备份都将无法恢复。

在启用了 PITR 的情况下删除表

删除已启用时间点恢复的表时,DynamoDB 将自动创建一个备份快照(称为系统备份),该备份快照将保留 35 天(无额外费用)。您可以使用系统备份,将已删除的表还原到删除点之前此表所处的状态。所有系统备份都遵循 table-name$DeletedTableBackup 标准命名约定。

注意

启用了时间点故障恢复的表在删除之后,您可以使用系统备份将该表恢复到某个时间点。系统备份在删除表时创建,是在删除表那一刻表的快照。