在 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 来启用时间点恢复。启用后,时间点恢复将提供持续备份,直到您明确将其关闭。
在启用时间点恢复后,您可以还原到 EarliestRestorableDateTime
和 LatestRestorableDateTime
之间的任何时间点。LatestRestorableDateTime
通常比当前时间早 5 分钟。有关更多信息,请参阅 将 DynamoDB 表还原到某个时间点。
注意
时间点恢复过程始终还原到新表。
启用 PITR(控制台)
使用 DynamoDB 控制台启用 PITR
-
导航到 DynamoDB 控制台。
-
从左侧导航栏中选择表,然后选择您的 DynamoDB 表。
-
在备份选项卡中,对于时间点故障恢复选项,选择编辑。
-
选择开启时间点故障恢复。
-
为备份恢复期选择 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
标准命名约定。
注意
启用了时间点故障恢复的表在删除之后,您可以使用系统备份将该表恢复到某个时间点。系统备份在删除表时创建,是在删除表那一刻表的快照。