

# 从数据库集群快照还原
<a name="aurora-restore-snapshot"></a><a name="restore_snapshot"></a>

Amazon RDS 创建数据库集群的存储卷快照，并备份整个数据库集群而不仅仅是单个数据库。您可以通过从数据库快照还原来创建新的数据库集群。您可以提供用于还原的数据库集群快照的名称，然后提供还原后新建的数据库集群的名称。您无法从数据库集群快照还原到现有数据库集群；还原时将新建一个数据库集群。

**重要**  
您无法将快照恢复到已超过 Aurora 标准支持结束日期的数据库引擎版本。只有在数据库成功升级到支持的版本后，您才能访问该数据库。有关支持的 Aurora DB 引擎版本的更多信息，请参阅[Amazon Aurora 的 Amazon RDS 扩展支持](extended-support.md)。  
如果升级到支持的集群版本失败，则集群状态将更改为 `upgrade_failed`，Aurora 会创建带有 `rds-final` 前缀的最终快照。要在升级失败后访问已弃用版本上的已还原数据库，请联系 AWS 支持人员。

您可以使用已还原的数据库集群，只要其状态为 `available`。

您可以使用 CloudFormation 从数据库集群快照中还原数据库集群。有关更多信息，请参阅《*AWS CloudFormation 用户指南*》中的 [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html)。

**注意**  
共享手动数据库集群快照（无论是否加密）可允许经授权的 AWS 账户直接从快照还原数据库集群，无需复制数据库集群再从中进行还原。有关更多信息，请参阅 [共享数据库集群快照](aurora-share-snapshot.md)。

有关使用 RDS Extended Support 版本还原 Aurora 数据库集群或全局集群的信息，请参阅[使用 Amazon RDS 扩展支持还原Aurora 数据集群或全局集群](extended-support-restoring-db-instance.md)。

## 参数组注意事项
<a name="aurora-restore-snapshot.Parameters"></a>

建议您保留所创建的任何数据库集群快照的数据库参数组和数据库集群参数组，以便还原的数据库集群可以与正确的参数组关联。

除非选择不同的实例，否则默认数据库参数组和数据库集群参数组将与还原的实例关联。默认参数组中没有可用的自定义参数设置。

您可以在还原数据库集群时指定参数组。

有关数据库参数组和数据库集群参数组的更多信息，请参阅[Amazon Aurora 的参数组](USER_WorkingWithParamGroups.md)。

## 安全组注意事项
<a name="aurora-restore-snapshot.Security"></a>

还原数据库时集群时，除非选择不同的值，否则默认的虚拟私有云（VPC）、数据库子网组和 VPC 安全组将与还原的实例关联。
+ 如果您使用 Amazon RDS 控制台，则可以指定要与集群关联的自定义 VPC 安全组，或者创建新的 VPC 安全组。
+ 如果您使用的是 AWS CLI，则可以在 `restore-db-cluster-from-snapshot` 命令中包括 `--vpc-security-group-ids` 选项，从而指定要与集群关联的自定义 VPC 安全组。
+ 如果您使用的是 Amazon RDS API，则可以在 `VpcSecurityGroupIds.VpcSecurityGroupId.N` 操作中包括 `RestoreDBClusterFromSnapshot` 参数。

一旦完成还原，并且您的新数据库集群可用，您还可以通过修改数据库集群来更改 VPC 设置。有关更多信息，请参阅 [修改 Amazon Aurora 数据库集群](Aurora.Modifying.md)。

## Amazon Aurora 注意事项
<a name="aurora-restore-snapshot.Aurora"></a>

利用 Aurora，可将数据库集群快照还原为数据库集群。

利用 Aurora MySQL 和 Aurora PostgreSQL，也可以将数据库集群快照还原为 Aurora Serverless 数据库集群。有关更多信息，请参阅 [还原 Aurora Serverless v1 数据库集群](aurora-serverless.restorefromsnapshot.md)。

利用 Aurora MySQL，可以将数据库集群快照从没有并行查询的集群恢复到具有并行查询的集群。因为并行查询通常用于非常大型的表，所以快照机制是向支持 Aurora MySQL 并行查询的集群引入大量数据的最快方式。有关更多信息，请参阅 [Amazon Aurora MySQL 的并行查询](aurora-mysql-parallel-query.md)。

## 从快照还原
<a name="aurora-restore-snapshot.Restoring"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 从数据库集群快照还原数据库集群。

### 控制台
<a name="aurora-restore-snapshot.CON"></a>

**从数据库集群快照还原数据库集群**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**快照**。

1. 选择要从其还原的数据库集群快照。

1. 对于**操作**，选择**还原快照**。

   将显示**还原快照**页面。

1. 选择您要将数据库集群还原到的数据库引擎版本。

   默认情况下，快照还原到与源数据库集群相同的数据库引擎版本（如果该版本可用）。

1. 对于 **DB instance identifier**（数据库实例标识符），请输入还原后的数据库实例的名称。请注意，Amazon RDS 从您指定的数据库实例标识符派生数据库集群标识符。

1. 指定其他设置，如数据库集群存储配置。

   有关每项设置的信息，请参阅[Aurora 数据库集群的设置](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings)。

1. 选择 **Restore DB cluster**（还原数据库集群）。

### AWS CLI
<a name="aurora-restore-snapshot.CLI"></a>

要从数据库集群快照还原数据库集群实例，请使用 AWS CLI 命令 [restore-db-cluster-from-snapshot](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/restore-db-cluster-from-snapshot.html)。

在该示例中，您将从先前创建的名为 `mydbclustersnapshot` 的数据库集群快照中进行还原。还原为名为 `mynewdbcluster` 的新数据库集群。

您可以指定其它设置，例如数据库引擎版本。如果您未指定引擎版本，则数据库集群将还原到默认引擎版本。

有关每项设置的信息，请参阅[Aurora 数据库集群的设置](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings)。

**Example**  
对于 Linux、macOS 或 Unix：  
   

```
1. aws rds restore-db-cluster-from-snapshot \
2.     --db-cluster-identifier mynewdbcluster \
3.     --snapshot-identifier mydbclustersnapshot \
4.     --engine aurora-mysql|aurora-postgresql
```
对于：Windows  
   

```
1. aws rds restore-db-cluster-from-snapshot ^
2.     --db-cluster-identifier mynewdbcluster ^
3.     --snapshot-identifier mydbclustersnapshot ^
4.     --engine aurora-mysql|aurora-postgresql
```

在还原数据库集群后，如果您需要具有与以前的数据库集群相同的功能，则必须将数据库集群添加到用于创建数据库快照的数据库集群使用的安全组中。

**重要**  
如果您使用控制台还原数据库集群，则 Amazon RDS 为您的数据库集群自动创建主数据库实例（写入器）。如果您使用 AWS CLI 还原数据库集群，则必须明确为数据库集群创建主实例。主实例是在数据库集群中创建的第一个实例。如果您未创建主数据库实例，则数据库集群端点将保持 `creating` 状态。  
调用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令，以便为数据库集群创建主实例。包括数据库集群名称以作为 `--db-cluster-identifier` 选项值。

### RDS API
<a name="aurora-restore-snapshot.API"></a>

要从数据库集群快照还原数据库集群，请使用以下参数调用 RDS API 操作 [RestoreDBClusterFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html)：
+ `DBClusterIdentifier` 
+ `SnapshotIdentifier` 

**重要**  
如果您使用控制台还原数据库集群，则 Amazon RDS 为您的数据库集群自动创建主数据库实例（写入器）。如果您使用 RDS API 还原数据库集群，则必须明确为数据库集群创建主实例。主实例是在数据库集群中创建的第一个实例。如果您未创建主数据库实例，则数据库集群端点将保持 `creating` 状态。  
调用 RDS API 操作 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 以创建数据库集群的主实例。包括数据库集群的名称作为 `DBClusterIdentifier` 参数值。