

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 快照和恢复点
<a name="serverless-snapshots-recovery-points"></a>

Amazon Redshift Serverless 中的备份，是您命名空间中的对象和数据在某个时间点的表示形式。备份有两种类型：手动创建的快照，以及 Amazon Redshift Serverless 自动为您创建的恢复点。

Amazon Redshift Serverless 每 30 分钟或在每个节点发生每 5 GB 数据更改后（以先发生者为准），会自动创建恢复点。对于较大的数据集（超过 5 GB × 节点数），恢复点之间的最小间隔为 15 分钟。所有恢复点都将保留 24 个小时。

**注意**  
您无法创建自己的快照计划来控制何时创建恢复点。

Amazon Redshift Serverless 在 Redshift 托管式存储（RMS）中创建快照。有关更多信息，请参阅 [Amazon Redshift Serverless 的计算容量](serverless-capacity.md)。

**注意**  
RA3 预调配集群和 Amazon Redshift Serverless 工作组不支持无备份表。在 RA3 集群和 Serverless 工作组中标记为无备份的表将被视为永久表，在拍摄快照时将始终对其进行备份，并在从快照还原时还原该表。要避免无备份表产生快照成本，请在拍摄快照之前将其截断。

如果您发现需要检索快照或恢复点中的数据，则可以将快照还原到无服务器命名空间或预置集群。您可以在以下三种情况下还原快照：
+ 将无服务器快照还原到无服务器命名空间。
+ 将无服务器快照还原到预置集群。
+ 将预置集群快照还原到无服务器命名空间。

将无服务器快照还原到预置集群时，您必须选择要使用的节点类型（例如 RA3）和节点数量，这让您可以在集群或节点级别控制设置。

要将预置的集群快照还原到无服务器命名空间，请从 Redshift 预置的控制台开始，选择要还原的快照，然后选择**从快照还原**、**恢复到无服务器命名空间**。在您将预置的集群快照还原到无服务器命名空间时，Amazon Redshift 会将带有交错键的表转换为复合排序键。有关排序键的更多信息，请参阅[使用排序键](https://docs.aws.amazon.com//redshift/latest/dg/t_Sorting_data.html)。

如果要添加额外的上下文，可以使用键值对标记快照和恢复点，这些键值对为快照和恢复点提供元数据和信息。有关标记资源的更多信息，请参阅[标记资源概述](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-tagging-resources.html)。

最后，您还可以与其他 AWS 账户共享快照，允许他们访问快照中的数据并运行查询。

## AWS Backup 集成
<a name="serverless-backup"></a>

您还可以使用 AWS Backup 创建和还原快照，这是一项完全托管式服务，有助于您在云端以及在本地集中管理和自动执行各种 AWS 服务中的数据保护。有关更多信息，请参阅 [AWS Backup 与 Amazon Redshift 集成](managing-aws-backup.md)。有关 AWS Backup 的信息，请参阅《AWS Backup Developer Guide》**中的 [What is AWS Backup?](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html)

# 创建快照
<a name="serverless-snapshots"></a>

**注意**  
RA3 预调配集群和 Amazon Redshift Serverless 工作组不支持无备份表。在 RA3 集群和 Serverless 工作组中标记为无备份的表将被视为永久表，在拍摄快照时将始终对其进行备份，并在从快照还原时还原该表。要避免无备份表产生快照成本，请在拍摄快照之前将其截断。

要创建快照，请执行以下过程中的步骤。

**要创建快照**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择**创建快照**。

1. 选择要创建其快照的命名空间。

1. 输入快照标识符。

1. （可选）选择保留期。如果您选择**自定义值**，请选择天数。您选择的数值必须在 1-3653（含）天之间。原定设置值是无限期保留。

1. 选择**创建**。

**从命名空间配置创建快照**

1. 在 Amazon Redshift Serverless 控制台上，选择**命名空间配置**。

1. 选择要创建其快照的命名空间。您只能创建与工作组关联且其状态为“可用”的命名空间的快照。

1. 选择**数据备份**选项卡。

1. 选择**创建快照**。

1. 输入快照标识符。

1. （可选）选择保留期。如果您选择**自定义值**，请选择天数。您选择的数值必须在 1-3653（含）天之间。

1. 选择**创建**。

# 生成最终快照
<a name="serverless-snapshot-create-final"></a>

要在删除命名空间之前创建命名空间内所有数据的最终快照，请执行以下过程中的步骤。

**创建最终快照**

1. 在 Amazon Redshift Serverless 控制台上，选择**命名空间配置**。

1. 选择要删除的命名空间。

1. 依次选择**操作**和**删除**。

1. 选择**创建最终快照**。

1. 输入快照的名称。

1. 输入 delete。

1. 选择**删除**。

# 共享快照或移除快照权限
<a name="serverless-snapshot-share"></a>

要与其它 AWS 账户共享快照或移除账户对快照的访问权限，请执行以下过程。

**共享快照或移除对快照的访问权限**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择要共享的快照。

1. 依次选择**操作**和**管理访问**。

1. 要与其他账户共享快照，请输入 **AWS 账户 ID**。要删除账户的访问权限，请选择**删除**。

1. 选择**保存更改**。

# 计划快照
<a name="serverless-snapshot-scheduling"></a>

要精确控制创建快照的时间，您可以为特定命名空间创建快照计划。计划快照的创建时，您可以创建一次性事件，也可以使用 Unix cron 表达式来创建定期执行的计划。Cron 表达式支持以空格分隔三个字段。

```
cron(Minutes Hours Day-of-month Month Day-of-week Year)
```


| **字段** | **值** | **通配符** | 
| --- | --- | --- | 
|  分钟  |  0-59  |  , - \$1 /   | 
|  小时  |  0-23  |  , - \$1 /   | 
|  Day-of-month  |  1-31  |  , - \$1 ? / L W  | 
|  Month  |  1-12 或 JAN-DEC  |  , - \$1 /  | 
|  星期几  |  1–7 或 SUN-SAT  |  , - \$1 ? L \$1  | 
|  Year  |  1970-2199  |  , - \$1 /  | 

**通配符**
+ **,**（逗号）通配符包含其他值。在 `Day-of-week` 字段中，`MON,WED,FRI` 将包含星期一、星期三和星期五。总值限制为每字段 24 个。
+ **-**（破折号）通配符用于指定范围。在 `Hour` 字段中，1–15 将包含指定日期的 1 - 15 小时。
+ **\$1**（星号）通配符包含该字段中的所有值。在 `Hours` 字段中，**\$1** 将包含每个小时。
+ **/**（正斜杠）通配符用于指定增量。在 `Hours` 字段中，您可以输入 **1/10** 来指定从当天的第 1 个小时开始每隔 10 小时（例如，01:00、11:00 和 21:00）。
+ **?**（问号）通配符用于指定一个或另一个。在 `Day-of-month` 字段中，您可以输入 **7**，如果您不介意 7 日是星期几，则可以在“星期几”字段中输入 **?**。
+ ** 或 ** 字段中的 `Day-of-month`L`Day-of-week` 通配符用于指定月或周的最后一天。
+ `Day-of-month` 字段中的 **W** 通配符用于指定工作日。在 `Day-of-month` 字段中，`3W` 用于指定最靠近当月的第三周的日。
+ “Day-of-week”字段中的 **\$1** 通配符用于指定一个月内所指定星期几的特定实例。例如，3\$12 指该月的第二个星期二：3 指的是星期二，因为它是每周的第三天，2 是指该月内该类型的第二天。
**注意**  
如果使用 “\$1” 字符，则只能在星期字段中定义一个表达式。例如，“3\$11,6\$13”是无效的，因为它被解释为两个表达式。

**限制**
+ 您无法在同一 cron 表达式中为 `Day-of-month` 和 `Day-of-week` 字段同时指定值。如果您在其中一个字段中指定了值，则必须在另一个字段中使用 **?**（问号）。
+ 快照计划不支持以下频率：
  + 计划快照的频率超过每小时 1 次。
  + 计划快照的频率低于每天 1 次（24 小时）。

  如果您有重叠的计划导致在 1 小时时段内计划了多次快照，将产生验证错误。

下表提供了一些示例 cron 字符串。


| 分钟 | 小时 | 星期几 | 意义 | 
| --- | --- | --- | --- | 
|  0  |  14-20/1  |  TUE  |  星期二下午 2 点到晚上 8 点之间，每小时拍摄一次。  | 
|  0  |  21  |  MON-FRI  |  每天晚上 9 点，星期一至星期五。  | 
|  30  |  0/6  |  SAT-SUN  |  星期六和星期日从当天午夜 30 分 (00:30) 开始，每 6 小时拍摄一次。这导致在每天的 [00:30、06:30、12:30 和 18:30] 拍摄快照。  | 
|  30  |  12/4  |  \$1  |  每天从 12:30 开始，每 4 小时拍摄一次。这将解析为 [12:30、16:30、20:30]。  | 

以下示例演示如何创建每天从 15:15 开始，以 2 小时为增量运行的计划。

```
 cron(15 15/2 *)
```

可以使用 Amazon Redshift Serverless 控制台、API 或 AWS CLI 来创建快照计划。

**计划快照**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择**快照计划**。

1. 选择**创建计划**。

1. 输入快照计划的名称。

1. 选择要为其创建快照的命名空间。

1. 为计划输入一个 cron 表达式，或使用计划生成器创建一个计划。

1. （可选）选择保留期。如果您选择**自定义值**，请指定天数。

1. 选择**创建计划**。

# 更新快照保留期
<a name="serverless-snapshot-update"></a>

要更新快照保留期，请执行以下过程。

**更新快照保留期**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择要更新的快照。

1. 依次选择**操作**和**设置手动快照设置**。

1. 选择保留期。如果您选择**自定义值**，请选择天数。

1. 选择**保存更改**。

# 删除快照
<a name="serverless-snapshot-delete"></a>

要删除快照，请执行以下过程。

**要删除快照，请执行以下操作**
**注意**  
您无法删除已与其他账户共享的快照。在删除快照之前，必须先删除该账户对快照的访问权限。

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择要删除的快照。

1. 依次选择**操作**和**删除**。

1. 选择**删除**。

# 还原快照
<a name="serverless-snapshot-restore"></a>

**注意**  
RA3 预调配集群和 Amazon Redshift Serverless 工作组不支持无备份表。在 RA3 集群和 Serverless 工作组中标记为无备份的表将被视为永久表，在拍摄快照时将始终对其进行备份，并在从快照还原时还原该表。要避免无备份表产生快照成本，请在拍摄快照之前将其截断。

将快照还原到无服务器命名空间，会将当前数据库替换为快照中的数据库。

将快照还原到无服务器命名空间分两个阶段完成。第一阶段在几分钟内完成，将数据还原到命名空间，并使其可用于查询。还原的第二阶段是优化数据库，这可能会导致轻微的性能问题。第二阶段可持续几个小时到几天，在某些情况下可持续几周。时间量取决于数据大小，但随着数据库进行优化，性能会逐步提高。在此阶段结束时，您的无服务器命名空间已充分优化，您可在没有性能问题的情况下提交查询。

**将快照还原到无服务器命名空间**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择要还原的快照。一次只能还原一个快照。

1. 依次选择**操作**和**恢复到无服务器命名空间**。

1. 选择要还原到的可用命名空间。只能还原到其状态为“可用”的命名空间。

1. 选择**还原**。

**将快照还原到预置集群**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择要还原的快照。

1. 依次选择**操作**和**还原到预置集群**。

1. 输入集群标识符。

1. 选择**节点类型**。节点的数量取决于节点类型。

1. 按照控制台页面上的说明进行操作，为**集群配置**输入属性。有关更多信息，请参阅[创建集群](https://docs.aws.amazon.com//redshift/latest/mgmt/create-cluster.html)。

有关预置集群上快照的更多信息，请参阅 [Amazon Redshift 快照和备份](https://docs.aws.amazon.com//redshift/latest/mgmt/working-with-snapshots.html)。

# 转换恢复点
<a name="serverless-recovery-point-convert"></a>

Amazon Redshift Serverless 中的恢复点大约每 30 分钟创建一次，并保存 24 小时。要将恢复点转换为快照，请执行以下过程中的步骤。

**将恢复点转换为快照**

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 在**恢复点**下，选择要转换为快照的恢复点的**创建时间**。

1. 选择**从恢复点创建快照**。

1. 输入**快照标识符**。

1. 选择**创建**。

# 还原恢复点
<a name="serverless-recovery-point-restore"></a>

Amazon Redshift Serverless 中的恢复点大约每 30 分钟创建一次，并保存 24 小时。要将恢复点还原为无服务器命名空间，请执行以下过程中的步骤

**将恢复点还原到无服务器命名空间**

1. 在 Amazon Redshift Serverless 控制台上，选择 **Data backup**（数据备份）。

1. 在**恢复点**下，选择要还原的恢复点的**创建时间**。

1. 选择**还原**。只能还原到其状态为“可用”的命名空间。

1. 在文本输入字段中输入**还原**，然后选择**还原**。

# 将备份复制到其他 AWS 区域
<a name="serverless-backup-copy"></a>

 您可以将 Amazon Redshift Serverless 配置为自动将快照和恢复点复制到其他 AWS 区域。当您在*源* AWS 区域中创建快照时，它会被复制到*目标*区域。您可以配置命名空间，使其一次只能将快照和恢复点复制到一个 AWS 区域目标。有关提供了 Amazon Redshift Serverless 的 AWS 区域的列表，请参阅《Amazon Web Services 一般参考》**中为 [Redshift Serverless API](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) 列出的端点。

在配置复制备份时，您还可以指定保留期，确定 Amazon Redshift Serverless 应将复制的快照保留多长时间。您无法更改恢复点的保留期，该值必须为 1 天。在目标区域中快照的保留期，独立于源区域中快照的保留期。默认情况下，保留期为无限期保留快照。如果您选择**自定义值**，请选择天数。您选择的此数值必须在 1-3653（含）天之间。

如需更改要将快照复制到的目标区域，请先禁用复制备份，然后在重新启用复制时指定新的目标区域。

将快照或恢复点复制到目标区域后，您可以用这些快照或恢复点将数据恢复到区域中。

默认情况下，您的数据将使用 AWS 为您管理的密钥进行加密。要使用其他密钥，在源 AWS 区域中配置备份复制时，请指定要使用的密钥，然后 Amazon Redshift Serverless 会自动创建授权，从而在目标 AWS 区域启用快照加密。

要将备份复制到其他区域，请确保您具有以下 IAM 权限：

```
redshift-serverless:CreateSnapshotCopyConfiguration
redshift-serverless:UpdateSnapshotCopyConfiguration
redshift-serverless:ListSnapshotCopyConfigurations
redshift-serverless:DeleteSnapshotCopyConfiguration
```

如果您使用自己的 KMS 密钥来加密备份，则还需要以下权限：

```
kms:CreateGrant
kms:DescribeKey
```

配置将快照或恢复点复制到其他 AWS 区域

1. 在 Amazon Redshift Serverless 控制台上，选择要配置为复制其快照或恢复点的命名空间。

1. 依次选择**操作**、**配置跨区域备份**。

1. 选择要将快照复制到的目标 AWS 区域。

1. （可选）选择将快照保留多长时间。如果您选择**自定义值**，请选择天数。您选择的数值必须在 1-3653（含）天之间。默认设置是无限期保留。

1. （可选）选择其他 AWS KMS 密钥用于目标区域中的加密。

1. 选择 **Save configuration**。

# 还原表
<a name="serverless-table-restore"></a>

 您也可以从快照或恢复点还原特定表。执行此操作时，您需要指定源快照或恢复点、数据库、架构、表、目标数据库、架构和新表名。这个新表不能使用与现有表相同的名称。如果您希望还原表来替换现有的表，则必须先重命名或删除现有表，然后再还原表。

**注意**  
RA3 预调配集群和 Amazon Redshift Serverless 工作组不支持无备份表。在 RA3 集群和 Serverless 工作组中标记为无备份的表将被视为永久表，在拍摄快照时将始终对其进行备份，并在从快照还原时还原该表。但是，不支持选择性还原无备份表。

 使用源表的列定义、表属性和列属性（外键除外）创建目标表。为了防止因依赖项而导致发生冲突，目标表不从源表继承外键。不向目标表应用任何依赖项（例如，源表上的视图或授予的权限）。

如果源表的所有者存在，那么该用户是已还原的表的所有者，前提是该用户拥有足够的权限成为在指定数据库和 schema 中指定的关系的所有者。否则，已还原的表由在启动集群时创建的管理员用户所有。

已还原的表将返回在执行备份时其所处的状态。这包括由 Amazon Redshift 对[可序列化隔离](https://docs.aws.amazon.com/redshift/latest/dg/c_serial_isolation.html)的符合性定义的事务可见性规则，这意味着数据将立即对在备份后启动的进行中事务可见。

 您可以使用 Amazon Redshift Serverless 控制台从快照还原表。

从数据备份还原表存在以下限制：
+ 一次只能还原一个表。
+ 不向目标表应用任何依赖项（例如，源表上的视图或授予的权限）。
+ 如果为正在还原的表启用行级安全性，Amazon Redshift Serverless 将还原已启用行级安全性的表。

使用 Amazon Redshift Serverless 控制台还原表

1. 在 Amazon Redshift Serverless 控制台上，选择**数据备份**。

1. 选择包含要还原的表的快照或恢复点。

1. 选择**操作**、**从快照还原表**或**从恢复点还原表**。

1. 输入有关源快照或恢复点以及目标表的信息，然后选择**还原表**。