在 DynamoDB 中启用时间点恢复 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 DynamoDB 中启用时间点恢复

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

注意

DynamoDB 根据每个 DynamoDB 表的大小(包括表数据和本地二级索引)收取 PITR 费用。为了确定您的备份费用,DynamoDB 会持续监控已开启 PITR 的表的大小。在您为每个表关闭 PITR 之前,您需要按照 PITR 使用量付费。

启用时间点恢复

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

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

注意

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

启用 PITR(控制台)

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

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

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

  4. 选择开启时间点故障恢复,然后选择保存更改

启用 PITR(Amazon CLI)

注意

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

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

aws dynamodb update-continuous-backups \ --region us-east-1 \ --table-name <ddb-table-name> \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=true

启用 PITR(Amazon CloudFormation)

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

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

请求语法示例:

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

启用 PITR(API)

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

请求语法示例:

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

响应语法示例:

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

Python

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

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

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

注意

一旦删除已启用时间点恢复的表后,您可以使用系统还原将该表还原到刚好删除前的那个时间点。不能将删除的表还原到过去 35 天内的任何其他时间点。