

# 使用 DynamoDB 备份和还原 DynamoDB 表：工作原理
<a name="CreateBackup"></a>

可以使用 DynamoDB 按需备份功能创建 Amazon DynamoDB 表的完整备份。此功能独立于 AWS 备份。此部分概述了 DynamoDB 备份和还原过程中发生的情况。

## 备份
<a name="CreateBackup_HowItWorks"></a>

在使用 DynamoDB 创建按需备份时，会对请求的时间标记进行编目。通过对上次完整表快照应用直到请求时所做的所有更改，来异步创建备份。DynamoDB 备份请求将在瞬间完成处理，几分钟后即可用于还原。

**注意**  
每次创建按需备份时都会备份整个表数据。可以创建的按需备份的数量不受限制。

DynamoDB 中的所有备份都不消耗表上任何预置的吞吐量。

DynamoDB 备份不能保证项目间的因果一致性，但备份中更新之间的偏差通常远远小于一秒。

在备份期间无法执行以下操作：
+ 暂停或取消备份操作。
+ 删除备份的源表。
+ 禁用表的备份 (如果正在备份该表)。

如果您不想创建计划脚本和清理作业，则可以使用 AWS Backup 来为 DynamoDB 表创建包含计划和保留策略的备份计划。AWS Backup 执行备份并在备份过期时将其删除。有关更多信息，请参见[AWS Backup 开发人员指南](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)。

除了 AWS Backup 之外，您可以通过使用 AWS Lambda 函数来安排定期或未来的备份。有关更多信息，请参阅博客文章 [A serverless solution to schedule your Amazon DynamoDB On-Demand backup](https://aws.amazon.com/blogs/database/a-serverless-solution-to-schedule-your-amazon-dynamodb-on-demand-backup/)（用于计划 Amazon DynamoDB 按需备份的无服务器解决方案）。

如果您使用的是控制台，则使用 AWS Backup 创建的任何备份均将在 **Backups (备份)** 选项卡上列出且 **Backup type (备份类型)** 设置为 `AWS`。

**注意**  
无法使用 DynamoDB 控制台删除 AWS 标记为 **Backup 类型**的备份。要管理这些备份，请使用 AWS Backup 控制台。

要了解如何执行设备，请参阅 [备份 DynamoDB 表](Backup.Tutorial.md)。

## 还原
<a name="CreateBackup_HowItWorks-restore"></a>

对表进行还原，而不消耗表上的任何预置吞吐量。可以从 DynamoDB 备份执行完整表还原，也可以配置目标表设置。在执行还原时，您可以更改以下表设置：
+ 全局二级索引 (GSI)
+ 本地二级索引 (LSI)
+ 计费模式
+ 预置的读取和写入容量
+ 加密设置

**重要**  
在执行完全表还原时，根据请求备份时的记录，目标表被设置为与源表相同的预置读取容量单位和写入容量单位。还原过程还将还原本地二级索引和全局二级索引。

您还可以跨 AWS 区域还原您的 DynamoDB 表数据，以便在备份所在的其他区域中创建还原的表。可以在 AWS 商业区域、AWS 中国区域和 AWS GovCloud（美国）区域之间执行跨区域还原。只需为从源区域传输的数据以及在目标区域中还原为新表的操作付费。

如果您选择排除在新的还原表上生成某些或所有二级索引，则还原可以更快且更具成本效益。

必须在还原的表上手动设置以下各项：
+ 自动扩缩策略
+ AWS Identity and Access Management (IAM) 策略
+ Amazon CloudWatch 指标和警报
+ 标签
+ 流设置
+ 生存时间（TTL）设置
+ 删除保护设置
+ 时间点故障恢复（PITR）设置

您只能从备份将整个表数据还原到一个新表。只能在还原的表变为活动状态后，才能向其中写入内容。

**注意**  
 在还原操作中不能覆盖现有表。

还原时间直接与表的配置（例如表的大小和基础分区的数量）以及其他相关变量相关。规划灾难恢复的最佳做法是定期记录平均还原完成时间，并确定这些时间对整个恢复时间目标的影响。

要了解如何执行还原，请参阅 [从备份还原 DynamoDB 表](Restore.Tutorial.md)。

您可以将 IAM policy 用于访问控制。有关更多信息，请参阅 [将 IAM 与 DynamoDB 备份和还原结合使用](backuprestore_IAM.md)。

所有备份和还原控制台及 API 操作都将被捕获并记录在 AWS CloudTrail 中以用于日志记录、持续监控和审核。