当我尝试恢复 Amazon DynamoDB 表时,恢复过程要花费很长时间。
解决方法
从备份恢复 DynamoDB 表时,恢复过程通常不到一个小时就能完成。恢复花费时间长短与表的配置有关,例如表大小、底层分区的数量和其他相关变量。在计划进行灾难恢复时,最佳做法是定期记录平均恢复完成时间。然后,确定这些完成时间如何影响您的整体恢复时间目标。
DynamoDB 恢复表所花费的时间因多种因素而异,不一定与表的大小有关。如果您的表包含有明显偏斜和二级索引的数据,则恢复所需时间可能会增加。恢复过程进行时,表的状态为正在恢复。恢复过程完成后,该表的状态显示为活动。DynamoDB 中的所有备份运行时均无需消耗表上任何预置吞吐量。
但是请注意,无法计算表恢复时间。从备份恢复 DynamoDB 表时,请注意参考以下信息:
- 恢复表所需的时间与表的大小并不总是直接相关。
- 对 DynamoDB 表执行时间点故障恢复时,无论表的大小如何,恢复至少需要 20 分钟。恢复表后,DynamoDB 需要时间来预置所有资源,以创建新表并启动恢复过程。然后,DynamoDB 才能复制实际数据。
- 如果表中的数据分布均匀,则恢复时间与按项目计数的最大单个分区成正比。
- 当一个分区键的数据明显多于另一个分区键时,就会出现数据偏斜。如果数据存在偏斜,则由于潜在的热键和节流,恢复所需时间就可能会增加。例如,如果您的表的主键使用一年中的月份进行分区,则请查看数据的分布情况。如果您的大部分数据来自 12 月,则您的数据就存在偏斜。
- 要提高表恢复的效率和速度,请注意不要有创建二级索引的情况。
- 架构和数据不同的两个不同的表无法比较恢复时间。表的恢复时间取决于分区级别的数据偏度。
**注意:**恢复过程中,请勿修改或删除授予实体恢复权限的 AWS Identity and Access Management (IAM) 策略。如果修改或删除 IAM 实体的策略,则可能会导致意外行为。例如,假设您在恢复表时删除了该表的写入权限。在这种情况下,底层的 RestoreTableToPointInTime 或 RestoreTableFromBackup 操作就无法将任何恢复的数据写入到表中。IAM 策略涉及到访问目标恢复表的源 IP 限制,可能会导致类似的问题。
对于使用 AWS Key Management Service (AWS KMS) 托管式密钥或客户自主管理型密钥加密的备份,请监控您的密钥。如果在恢复过程中关闭或删除密钥,则恢复将失败。恢复完成后,您可以更改恢复表的加密密钥并关闭或删除旧密钥。
相关信息
使用 DynamoDB 按需备份和恢复功能
使用 DynamoDB 备份和恢复功能