Amazon DynamoDB 时间点恢复 (PITR) 提供 DynamoDB 表数据的自动备份。本部分概述在 DynamoDB 中此过程如何运行。
注意
DynamoDB 根据每个 DynamoDB 表的大小(包括表数据和本地二级索引)收取 PITR 费用。配置的最大恢复期不会影响您开启 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
}
)
编辑 PITR
您可以编辑表上的 PITR 设置并更改恢复期。如果您更改恢复期并将其增加到高于先前设置的值,EarliestRestorePoint
并不会立即更改。由于恢复期是一个滚动时间窗口,因此 DynamoDB 将继续进行自动备份,直到达到延长后的新期限。如果您更改恢复期并将其缩短到低于先前设置的值,则 EarliestRestorePoint
将立即缩小以匹配您的恢复周期,并且无法恢复任何在新设置期限范围之外的连续备份。
在启用了 PITR 的情况下删除表
删除已启用时间点恢复的表时,DynamoDB 将自动创建一个备份快照(称为系统备份),该备份快照将保留 35 天(无额外费用)。您可以使用系统备份,将已删除的表还原到删除点之前此表所处的状态。所有系统备份都遵循 table-name
$DeletedTableBackup
标准命名约定。
注意
启用了时间点故障恢复的表在删除之后,您可以使用系统备份将该表恢复到某个时间点。系统备份在删除表时创建,是在删除表那一刻表的快照。