本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Keyspaces 中 point-in-time 恢复的工作原理
本节概述了 Amazon Keyspaces point-in-time 恢复 (PITR) 的工作原理。有关定价的更多信息,请参阅 Amazon Keyspaces(Apache Cassandra 兼容)定价
PITR持续备份的时间窗口
Amazon Key PITR spaces 使用两个时间戳来维护表中可恢复备份的时间范围。
-
最早可还原时间:标记最早可还原备份的时间。最早的可还原备份最长可追溯到 35 天或启用PITR时,以较晚者为准。最长备份期限为 35 天,无法修改。
-
当前时间:最新可还原备份的时间戳为当前时间。如果在还原期间未提供时间戳,则使用当前时间。
PITR启用后,您可以恢复到EarliestRestorableDateTime
和之间的任何时间点CurrentTime
。您只能将表数据恢复到启用PITR时的时间。
如果您将其禁用后PITR又重新启用,则会将第一个可用备份的开始时间重置PITR为重新启用的时间。这意味着禁用会PITR删除您的备份历史记录。
注意
表上的数据定义语言 (DDL) 操作(例如架构更改)是异步执行的。您只能在还原的表数据中看到已完成的操作,但如果还原时正在进行其他操作,则您可能会在源表上看到这些操作。有关DDL语句的列表,请参见DDLAmazon Keyspaces 中的语句(数据定义语言)。
表不一定要处于活动状态才能还原。如果在已删除的表上启用PITR了删除功能,并且删除发生在备份窗口内(或最近 35 天内),则也可以恢复已删除的表。
注意
如果使用与先前删除的表相同的限定名称(例如 mykeyspace.mytable)创建了新表,则已删除的表将无法再还原。如果您尝试从控制台执行此操作,则系统会显示警告。
PITR恢复设置
当您使用恢复表时PITR,Amazon Keyspaces 会根据所选时间戳 (day:hour:minute:second
) 将源表的架构和数据恢复到新表的状态。PITR不会覆盖现有表。
除了表的架构和数据外,还会custom_properties
从源表中PITR恢复。表的数据是根据所选时间戳(在最早还原时间和当前时间之间)进行还原的,与此不同的是,自定义属性始终根据截至当前时间的表设置进行还原。
还原后的表的设置与源表的设置以及启动还原时的时间戳相匹配。如果要在还原期间覆盖这些设置,则可以使用 WITH custom_properties
来执行此操作。自定义属性包括以下设置:
-
读取/写入容量模式
-
预置的吞吐容量设置
-
PITR设置
如果表处于预置容量模式且启用了自动缩放,则还原操作还会恢复表的自动缩放设置。您可以使用中的参数CQL或autoScalingSpecification
中的autoscaling_settings
参数来覆盖它们。CLI有关 auto Scaling 设置的更多信息,请参阅使用 Amazon Keyspaces 自动扩展功能自动管理吞吐容量。
执行完整表还原时,还原表的所有表设置都来自还原时源表的当前设置。
例如,假设一个表的预配置的吞吐量最近下降到 50 个读取容量单位和 50 个写入容量单位。然后,您将表的状态还原到三周前的状态。表在该时间的预置吞吐量为 100 个读取容量单位和 100 个写入容量单位。在这种情况下,Amazon Keyspaces restores 将表数据还原到该时间点,但使用当前预置吞吐量设置(50 个读取容量单位和 50 个写入容量单位)。
以下设置不会还原,您必须手动为新表配置这些设置。
-
AWS Identity and Access Management (IAM) 政策
-
Amazon CloudWatch 指标和警报
-
标签(可使用将标签添加到CQL
RESTORE
语句中WITH TAGS
)
PITR恢复加密表
当您使用恢复表时PITR,Amazon Keyspaces 会恢复源表的加密设置。如果表是用加密的 AWS 拥有的密钥 (默认),则使用相同的设置自动恢复表。如果您要还原的表是使用客户自主管理型密钥加密的,那么 Amazon Keyspaces 需要能够访问相同的客户自主管理型密钥才能还原表数据。
您可以在还原时更改表的加密设置。要从 a 改变 AWS 拥有的密钥 对于客户管理的密钥,您需要在恢复时提供有效且可访问的客户托管密钥。
如果您想从客户管理的密钥更改为 AWS 拥有的密钥,确认 Amazon Keyspaces 有权访问源表的客户托管密钥以恢复该表 AWS 拥有的密钥。 有关表的静态加密设置的更多信息,请参阅静态加密:它在 Amazon Keyspaces 中如何运作。
注意
如果表是因为 Amazon Keyspaces 无法访问您的客户自主管理型密钥而被删除,则在尝试还原表之前,您需要确保 Amazon Keyspaces 能够访问客户自主管理型密钥。如果 Amazon Keyspaces 无权访问该密钥,则无法还原使用客户自主管理型密钥加密的表。有关更多信息,请参阅中的密钥访问疑难解答 AWS Key Management Service 开发人员指南。
PITR恢复多区域表
您可以使用恢复多区域表。PITR要使恢复操作成功,必须将源表和目标表都复制到同一个表 AWS 区域.
Amazon Keyspaces 在作为密钥空间一部分的每个复制区域中恢复源表的设置。您还可以在还原操作期间覆盖设置。有关可在还原期间更改的设置的更多信息,请参阅 PITR恢复设置。
有关多区域复制的更多信息,请参阅 多区域复制在 Amazon Keyspaces 中的工作原理。
表恢复时间为 PITR
还原表所需的时间取决于多种因素,并且并不是始终与表的大小直接相关。
以下是还原用时的一些注意事项。
-
将备份还原到新表。执行用于创建新表和启动还原流程的所有操作可能最多需要 20 分钟(即使表是空的)。
-
具有分布良好的数据模型的大型表的还原时间可能是几个小时或更长时间。
-
如果源表包含严重偏斜的数据,则还原时间可能会增加。例如,如果表的主键使用一年中的月份作为分区键,而您的所有数据均来自 12 月,那么就出现了偏斜数据。
规划灾难恢复的最佳做法是定期记录平均还原完成时间,并确定这些时间对整个恢复时间目标的影响。
Amazon Keyspaces PITR 及其集成 AWS 服务
以下PITR操作是使用记录的 AWS CloudTrail 以实现持续监控和审计。
-
在PITR启用或禁用状态下创建新表。
-
在现有表PITR上启用或禁用。
-
还原活动或已删除的表。
有关更多信息,请参阅 使用记录 Amazon Keyspaces API 调用 AWS CloudTrail。
您可以使用执行以下PITR操作 AWS CloudFormation.
在PITR启用或禁用状态下创建新表。
在现有表PITR上启用或禁用。
有关更多信息,请参阅中的 Cassandra 资源类型参考 AWS CloudFormation 用户指南。