对 DynamoDB 表进行备份和还原:工作原理 - Amazon DynamoDB
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

对 DynamoDB 表进行备份和还原:工作原理

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

备份

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

注意

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

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

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

在备份期间无法执行以下操作:

  • 暂停或取消备份操作。

  • 删除备份的源表。

  • 禁用表的备份 (如果正在备份该表)。

您可以通过使用 AWS Lambda 函数来安排定期或未来的备份。有关更多信息,请参阅博客文章用于计划 Amazon DynamoDB 按需备份的无服务器解决方案

如果您不想创建计划脚本和清理作业,则可以使用 AWS Backup 来为 DynamoDB 表创建包含计划和保留策略的备份计划。AWS Backup 执行备份并在备份过期时将其删除。有关更多信息,请参阅 AWS Backup 开发人员指南

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

注意

无法使用 DynamoDB 控制台删除备份。要管理这些备份,请使用 AWS Backup 控制台。

要了解如何执行设备,请参阅 备份 DynamoDB 表

还原

对表进行还原,而不消耗表上的任何预置吞吐量。可以从 DynamoDB 备份执行完整表还原,也可以配置目标表设置。在执行还原时,您可以更改以下表设置:

  • 全局二级索引 (GSI)

  • 本地二级索引 (LSI)

  • 计费模式

  • 预置的读取和写入容量

  • 加密设置

重要

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

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

注意

如果源区域或目标区域是亚太地区(香港)或中东(巴林)区域,则不支持跨区域还原。

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

必须在还原的表上手动设置以下各项:

  • 自动扩展策略

  • AWS Identity and Access Management (IAM) 策略

  • Amazon CloudWatch 指标和警报

  • 标签

  • 流设置

  • 生存时间 ( TTL) 设置

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

注意

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

还原表所用的时间因多个因素而异。还原用时并不总是直接与表的大小相关。例如,由于并行处理的关系,还原一个 300 GB 的表的用时与还原一个 3 GB 的表的用时相同。

以下是还原用时的一些注意事项:

  • 将备份还原到新表。执行用于创建新表和启动还原流程的所有操作可能最多需要 20 分钟(即使表是空的)。

  • 对于数据在主键之间均匀分布的表,还原时间与最大单分区(按项目数)而不是整体表大小成正比。对于包含数十亿项目的最大分区,还原可能需要不超过 10 小时的时间。

  • 如果您的源表中包含的数据严重倾斜,则还原用时可能会增加。例如,如果表的主键使用一年中的月份进行分区,而您的所有数据均来自 12 月,那么就出现了倾斜数据。

要了解如何执行还原,请参阅 从备份还原 DynamoDB 表

您可以将 IAM 策略用于访问控制。有关更多信息,请参阅将 IAM 用于 DynamoDB 备份和还原

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