时间点恢复在 Amazon Keyspaces 中的工作方式 - Amazon Keyspaces(针对 Apache Cassandra)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

时间点恢复在 Amazon Keyspaces 中的工作方式

本节概述了 Amazon Keyspaces 时间点恢复 (PITR) 的工作原理。有关定价的更多信息,请参阅 Amazon Keyspaces (for Apache Cassandra) 定价

启用时间点 Recovery (PITR)

您可以使用 AWS 管理控制台启用 PITR,也可以以编程方式启用它。

使用 AWS 管理控制台启用 PITR

您可以通过选中 控制台中的 Enable Point-in-time recovery (启用时间点恢复) 复选框,在 Amazon Keyspaces 中创建的新表上启用 PITR。默认情况下,该复选框处于选中状态。

要为现有表启用 PITR,请完成以下步骤。

  1. 通过以下网址打开 Amazon Keyspaces 控制台https://console.aws.amazon.com/keyspaces/home

  2. 在导航窗格中,选择 Tables (表),然后选择要编辑的表。

  3. Backups (备份) 选项卡上,选择 Edit (编辑)。

  4. 在编辑时间点恢复设置部分中,选择启用时间点恢复

您可以随时使用以下步骤对表禁用 PITR。

  1. 通过以下网址打开 Amazon Keyspaces 控制台https://console.aws.amazon.com/keyspaces/home

  2. 在导航窗格中,选择 Tables (表),然后选择要编辑的表。

  3. Backups (备份) 选项卡上,选择 Edit (编辑)。

  4. 在编辑时间点恢复设置部分中,清除启用时间点恢复复选框。

重要

禁用 PITR 会立即删除备份历史记录,即使您在 35 天内在表中重新启用 PITR 也是如此。

要了解如何使用 AWS 管理控制台还原表,请参阅将表还原到Point时间点(控制台)

以编程方式启用 PITR

您可以使用 point_in_time_recovery 自定义属性管理表的 PITR 设置。

使用 CQL 创建新表时,您必须在创建新表时显式启用 PITR。

要在创建新表时启用 PITR,您可以使用以下 CQL 命令作为示例。

CREATE TABLE "my_keyspace1"."my_table1"( "id" int, "name" ascii, "date" timestamp, PRIMARY KEY("id")) WITH CUSTOM_PROPERTIES = { 'capacity_mode':{'throughput_mode':'PAY_PER_REQUEST'}, 'point_in_time_recovery':{'status':'enabled'} }
注意

如果未指定时间点恢复自定义属性,则默认情况下禁用时间点恢复。

要使用 CQL 为现有表启用 PITR,请运行以下 CQL 命令。

ALTER TABLE mykeyspace.mytable WITH custom_properties = {'point_in_time_recovery': {'status': 'enabled'}}

要在现有表上禁用 PITR,请运行以下 CQL 命令。

ALTER TABLE mykeyspace.mytable WITH custom_properties = {'point_in_time_recovery': {'status': 'disabled'}}
重要

禁用 PITR 会立即删除备份历史记录,即使您在 35 天内在表中重新启用 PITR 也是如此。

有关更多信息,请参阅 CQL 语言参考中的CREATE TABLEALTER TABLE。要了解如何使用 CQL 还原表,请参阅使用 CQL 将表还原到某个时间点

PITR 的时段 Continuous Backups

Amazon Keyspaces PITR 使用两个时间戳来维持可还原备份可用于表的时间范围。

  • 最早可还原时间 – 表示最早可还原备份的时间。最早的可还原备份将最多备份 35 天或启用 PITR 时,以较晚者为准。无法修改最长备份时段 35 天。

  • 当前时间 – 最新可还原备份的时间戳是当前时间。如果在还原期间未提供时间戳,则使用当前时间。

启用 PITR 后,您可以还原到 EarliestRestorableDateTime 和 之间的任何时间点CurrentTime。您只能将表数据还原到启用 PITR 的时间。

如果您禁用了 PITR 并在以后再次启用它,则在重新启用 PITR 时将第一个可用备份的开始时间重置为 。这意味着,禁用 PITR 将擦除您的备份历史记录。

注意

对表的数据定义语言 (DDL) 操作(如架构更改)是异步执行的。您只能在还原的表数据中看到已完成的操作,但在还原时正在对源表执行其他操作。有关 DDL 语句的列表,请参阅Amazon Keyspaces 中的 DDL 语句(数据定义语言)

表不必处于活动状态即可还原。如果对已删除的表启用了 PITR 并且已在备份时段(或最近 35 天内)内执行删除操作,您也可以还原已删除的表。

注意

如果创建的新表具有与之前删除的表相同的限定名称(例如,mykeyspace.mytable),则已删除的表将不再可还原。如果您尝试从 AWS 管理控制台执行此操作,则会显示一条警告。

PITR 还原设置

在使用 PITR 还原表时,Amazon Keyspaces 会将源表的架构和数据基于选定的时间戳 (day:hour:minute:second) 还原到新表。PITR 不会覆盖现有表。

除了表的架构和数据之外,PITR 还会custom_properties从源表还原 。与基于最早还原时间和当前时间之间的选定时间戳还原的表数据不同,自定义属性始终基于表的设置还原,直至当前时间。

还原的表的设置与启动还原时时间戳的源表设置匹配。如果要在还原期间覆盖这些设置,可以使用 执行此操作WITH custom_properties。自定义属性包括以下设置。

  • 读/写容量模式

  • 预置的吞吐容量设置

  • PITR 设置

执行完整表还原时,还原表的所有表设置都来自还原时源表的当前设置。

例如,假设一个表的预配置的吞吐量最近下降到 50 个读取容量单位和 50 个写入容量单位。然后,您将表的状态还原到三周前的状态。目前,其预置吞吐量已设置为 100 个读取容量单位和 100 个写入容量单位。在这种情况下,Amazon Keyspaces 会将表数据还原到该时间点,但使用当前的预置吞吐量设置(50 个读取容量单位和 50 个写入容量单位)。

以下设置不会还原,您必须为新表手动配置它们。

  • 自动扩展策略(适用于使用预置容量模式的表)

  • AWS AWS Identity and Access Management (IAM) 策略

  • Amazon CloudWatch 指标和警报

  • 标签(可以使用 添加到 CQL RESTORE 语句WITH TAGS

使用 的表还原时间 PITR

还原表所需的时间基于多个因素,并不总是与表的大小直接相关。

以下是还原时间的一些注意事项。

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

  • 具有良好分布的数据模型的大型表的还原时间可以是几个小时或更长时间。

  • 如果您的源表包含明显偏斜的数据,则还原时间可能会增加。例如,如果您的表的主键使用一年中的月份作为分区键,并且您的所有数据都来自 12 月,则您已偏移数据。

Amazon Keyspaces PITR 以及与 AWS 服务的集成

使用 AWS CloudTrail 记录以下 PITR 操作,以启用持续监控和审计。

  • 在启用或禁用 PITR 的情况下创建新表。

  • 在现有表上启用或禁用 PITR。

  • 还原活动或已删除的表。

有关更多信息,请参阅使用 AWS CloudTrail 记录 Amazon Keyspaces API 调用