

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

# 在 Amazon DocumentDB 中进行备份和还原
<a name="backup_restore"></a>

Amazon DocumentDB（与 MongoDB 兼容）可将数据持续备份到 Amazon Simple Storage Service (Amazon S3) 中 1-35 天，这样您就可以快速恢复到备份留存期内的任何时间点。作为持续备份过程的一部分，Amazon DocumentDB 还会自动拍摄数据快照。

**注意**  
这些是服务托管的 Amazon S3 存储桶，您无法访问备份文件。如果要控制自己的备份，请按照[转储、恢复、导入和导出数据](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html)中的说明进行操作。

还可以通过为集群的数据创建手动快照来超出备份保留期保留备份数据。备份过程不会影响您的集群的性能。

本节讨论在 Amazon DocumentDB 中的备份功能的使用案例，并为您展示如何管理 Amazon DocumentDB 集群的备份。

**Topics**
+ [备份和还原：概念](backup_restore-nouns_verbs.md)
+ [了解 备份存储使用量](backup_restore-understanding_backup_storage_usage.md)
+ [转储、还原、导入和导出数据](backup_restore-dump_restore_import_export_data.md)
+ [集群快照注意事项](backup_restore-cluster_snapshot_considerations.md)
+ [比较自动快照和手动快照](backup_restore-compare_automatic_manual_snapshots.md)
+ [创建手动集群快照](backup_restore-create_manual_cluster_snapshot.md)
+ [复制集群快照](backup_restore-copy_cluster_snapshot.md)
+ [共享集群快照](backup_restore-share_cluster_snapshots.md)
+ [从集群快照还原](backup_restore-restore_from_snapshot.md)
+ [还原到某个时间点](backup_restore-point_in_time_recovery.md)
+ [删除集群快照](backup_restore-delete_cluster_snapshot.md)

# 备份和还原：概念
<a name="backup_restore-nouns_verbs"></a>


| 名词 | 说明 | APIs （动词） | 
| --- | --- | --- | 
|  备份保留期  |  您可以在 1 到 35 天之间执行 point-in-time恢复的时间段。  |  `create-db-cluster` `modify-db-cluster` `restore-db-cluster-to-point-in-time`  | 
|  Amazon DocumentDB 存储卷  |  高可用性和高持久性的存储卷，可以跨三个可用区以六种方式复制数据。无论 Amazon DocumentDB 集群中的实例数量是多少，该集群都具有高持久性。  |  `create-db-cluster` `delete-db-cluster` | 
|  备份时段  |  拍摄自动快照的一天中的时间段。  |  `create-db-cluster` `describe-db-cluster` `modify-db-cluster` | 
|  自动快照  |  每日快照是集群的完整备份，由 Amazon DocumentDB 中的连续备份过程自动创建。  |  `restore-db-cluster-from-snapshot` `describe-db-cluster-snapshot-attributes` `describe-db-cluster-snapshots` | 
|  手动快照  |  您手动创建的快照，用于超出备份期间保留集群的完整备份。  |  `create-db-cluster-snapshot` `copy-db-cluster-snapshot` `delete-db-cluster-snapshot` `describe-db-cluster-snapshot-attributes` `describe-db-cluster-snapshots` `modify-db-cluster-snapshot-attribute`  | 

# 了解 备份存储使用量
<a name="backup_restore-understanding_backup_storage_usage"></a>

Amazon DocumentDB 备份存储包含备份留存期内的连续备份和留存期外的手动快照。要控制备份存储使用量，可以缩短备份保留间隔和/或删除不再需要的旧的手动快照。有关 Amazon DocumentDB 备份的一般信息，请参阅[在 Amazon DocumentDB 中进行备份和还原](backup_restore.md)。有关 Amazon DocumentDB 备份存储的定价信息，请参阅 [Amazon DocumentDB 定价](https://aws.amazon.com/documentdb/pricing/)。

要控制成本，您可以监控持续备份和存在时间超出保留期的手动快照所消耗的存储量。然后，您可以缩短备份保留间隔，并在不再需要手动快照时删除它们。

您可以使用亚马逊 CloudWatch 指标`TotalBackupStorageBilled``SnapshotStorageUsed`、和`BackupRetentionPeriodStorageUsed`来查看和监控您的 Amazon DocumentDB 备份使用的存储量，如下所示：
+ `BackupRetentionPeriodStorageUsed` 表示目前用于存储连续备份的备份存储量。此度量值取决于集群卷的大小和您在保留期内所做的更改的数量。但是，出于计费目的，此指标不会超过保留期内的集群卷的累计大小。例如，如果您的集群大小为 100 GiB 且保留期为两天，则 `BackRetentionPeriodStorageUsed` 的最大值为 200 GiB (100 GiB \$1 100 GiB)。

   
+ `SnapshotStorageUsed` 表示用于存储超出备份保留期的手动快照的备份存储量。在保留期内拍摄的手动快照不计入备份存储。同样，自动快照不会计入备份存储。每个快照的大小是您拍摄快照时的集群卷的大小。`SnapshotStorageUsed` 值取决于您保留的快照数和每个快照的大小。例如，假设您有一个保留期外的快照，并且在拍摄快照时集群卷大小为 100 GiB。`SnapshotStorageUsed` 的数量将为 100 GiB。

   
+ `TotalBackupStorageBilled` 表示 `BackupRetentionPeriodStorageUsed` 与 `SnapshotStorageUsed` 之和再减去免费备份存储量（等于一天的集群卷的大小）。例如，如果集群大小为 100 GiB，您有一天的留存期，并且您有一个留存期外的快照，则 `TotalBackupStorageBilled` 为 100 GiB (100 GiB \$1 100 GiB - 100 GiB)。

   
+ 这些指标是为每个 Amazon DocumentDB 集群单独计算的。

[您可以通过控制台监控您的 Amazon DocumentDB 集群并使用 CloudWatch 指标生成报告。CloudWatch ](https://console.aws.amazon.com/cloudwatch)有关如何使用 CloudWatch 指标的更多信息，请参阅[监控 Amazon DocumentDB](monitoring_docdb.md)。

# 转储、还原、导入和导出数据
<a name="backup_restore-dump_restore_import_export_data"></a>

您可以使用 `mongodump`、`mongorestore`、`mongoexport` 和 `mongoimport` 实用工具将数据移入和移出 Amazon DocumentDB 集群。此部分讨论了所有这些工具和配置的用途，以帮助您实现更好的性能。

**Topics**
+ [`mongodump`](#backup_restore-dump_restore_import_export_data-mongodump)
+ [`mongorestore`](#backup_restore-dump_restore_import_export_data-mongorestore)
+ [`mongoexport`](#backup_restore-dump_restore_import_export_data-mongoexport)
+ [`mongoimport`](#backup_restore-dump_restore_import_export_data-mongoimport)
+ [教程](#backup_restore-dump_restore_import_export_data-tutorial)

## `mongodump`
<a name="backup_restore-dump_restore_import_export_data-mongodump"></a>

`mongodump` 实用工具创建 MongoDB 数据库的二进制 (BSON) 备份。由于以二进制格式存储数据可实现较高的大小效率，因此，在希望将数据还原到 Amazon DocumentDB 集群中时，`mongodump` 工具是转储源 MongoDB 部署中的数据的首选方法。

根据用于执行命令的实例或计算机上的可用资源，您可以使用 `--numParallelCollections` 选项增加从默认 1 转储的并行集合的数量，从而加快 `mongodump` 的速度。一个好的经验法则是，在 Amazon DocumentDB 集群的主实例上，为每个 vCPU 启动一个工作线程。

**注意**  
我们对 Amazon DocumentDB 推荐高达且包括版本 100.6.1 的 MongoDB 数据库工具。您可以在[此处](https://www.mongodb.com/download-center/database-tools/releases/archive)下载 MongoDB 数据库工具。

### 示例用法
<a name="backup_restore-dump_restore_import_export_data-mongodump-example"></a>

下面是 Amazon DocumentDB 集群 `sample-cluster` 中的 `mongodump` 实用工具的使用示例。

```
mongodump --ssl \
    --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \
    --collection=sample-collection \
    --db=sample-database \
    --out=sample-output-file \
    --numParallelCollections 4  \
    --username=sample-user \
    --password=abc0123 \
    --sslCAFile global-bundle.pem
```

## `mongorestore`
<a name="backup_restore-dump_restore_import_export_data-mongorestore"></a>

利用 `mongorestore` 实用工具，您可以还原使用 `mongodump` 实用工具创建的数据库的二进制 (BSON) 备份。您可以通过使用 `--numInsertionWorkersPerCollection` 选项（默认值为 1）增加还原期间每个集合的工作线程数来提高还原性能。一个好的经验法则是，在 Amazon DocumentDB 集群的主实例上，为每个 vCPU 启动一个工作线程。

### 示例用法
<a name="backup_restore-dump_restore_import_export_data-mongorestore-example"></a>

下面是 Amazon DocumentDB 集群 `sample-cluster` 中的 `mongorestore` 实用工具的使用示例。

```
mongorestore --ssl \
    --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \
    --username=sample-user \
    --password=abc0123 \
    --sslCAFile global-bundle.pem <fileToBeRestored>
```

## `mongoexport`
<a name="backup_restore-dump_restore_import_export_data-mongoexport"></a>

`mongoexport` 工具将 Amazon DocumentDB 中的数据导出为 JSON、CSV 或 TSV 文件格式。`mongoexport` 工具是导出要求可供人类或机器读取的数据的首选方法。

**注意**  
`mongoexport` 无法直接支持并行导出。但是，可以通过同时为不同的集合执行多个 `mongoexport` 作业来提高性能。

### 示例用法
<a name="backup_restore-dump_restore_import_export_data-mongoexport-example"></a>

下面是 Amazon DocumentDB 集群 `sample-cluster` 中的 `mongoexport` 工具的使用示例。

```
mongoexport --ssl \
    --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \
    --collection=sample-collection \
    --db=sample-database \
    --out=sample-output-file \
    --username=sample-user \
    --password=abc0123 \
    --sslCAFile global-bundle.pem
```

## `mongoimport`
<a name="backup_restore-dump_restore_import_export_data-mongoimport"></a>

`mongoimport` 工具将 JSON、CSV 或 TSV 文件的内容导入 Amazon DocumentDB 集群中。可以使用 `-–numInsertionWorkers` 参数实现并行化和加快导入速度（默认值为 1）。

### 示例用法
<a name="backup_restore-dump_restore_import_export_data-mongoimport-example"></a>

下面是 Amazon DocumentDB 集群 `sample-cluster` 中的 `mongoimport` 工具的使用示例。

```
mongoimport --ssl \
    --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \
    --collection=sample-collection \
    --db=sample-database \
    --file=<yourFile> \
    --numInsertionWorkers 4 \
    --username=sample-user \
    --password=abc0123 \
    --sslCAFile global-bundle.pem
```

## 教程
<a name="backup_restore-dump_restore_import_export_data-tutorial"></a>

以下教程介绍如何使用 `mongodump`、`mongorestore`、`mongoexport` 和 `mongoimport` 实用工具将数据移入和移出 Amazon DocumentDB 集群。

1. **先决条件**：在开始之前，请确保您的 Amazon DocumentDB 集群已配置，并且您有权访问位于您的集群所在的同一 VPC 中的 Amazon EC2 实例。有关更多信息，请参阅 [使用 Amazon EC2 进行连接](connect-ec2.md)。

   要使用 mongo 实用工具，您必须在 EC2 实例中安装 mongodb-org-tools软件包，如下所示。

   ```
   sudo yum install mongodb-org-tools-4.0.18
   ```

   由于 Amazon DocumentDB 默认使用传输层安全性协议（TLS）加密，因此您还必须下载 Amazon RDS 证书颁发机构 (CA) 文件以使用 mongo Shell 进行连接，如下所示。

   ```
   wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
   ```

1. **下载示例数据**：在本教程中，您将下载一些包含餐厅相关信息的示例数据。

   ```
   wget https://raw.githubusercontent.com/ozlerhakan/mongodb-json-files/master/datasets/restaurant.json
   ```

1. **将示例数据导入 Amazon DocumentDB 中**：由于数据采用的是逻辑 JSON 格式，因此，您将使用 `mongoimport` 实用工具将数据导入 Amazon DocumentDB 集群中。

   ```
   mongoimport --ssl \ 
       --host="tutorialCluster.amazonaws.com:27017" \ 
       --collection=restaurants \
       --db=business \ 
       --file=restaurant.json \
       --numInsertionWorkers 4 \
       --username=<yourUsername> \
       --password=<yourPassword> \
       --sslCAFile global-bundle.pem
   ```

1. **使用 `mongodump` 转储数据**：现在，Amazon DocumentDB 集群中已有数据，您可以使用 `mongodump` 实用工具对该数据进行二进制转储。

   ```
   mongodump --ssl \
       --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017"\
       --collection=restaurants \
       --db=business \
       --out=restaurantDump.bson \
       --numParallelCollections 4 \
       --username=<yourUsername> \
       --password=<yourPassword> \
       --sslCAFile global-bundle.pem
   ```

1. **删除 `restaurants` 集合**：在还原 `business` 数据库中的 `restaurants` 集合之前，必须先删除该数据库中已有的集合，如下所示。

   ```
   use business
   ```

   ```
   db.restaurants.drop()
   ```

1. **使用 `mongorestore` 还原数据**：在步骤 3 中对数据进行二进制转储后，您现在可以使用 `mongorestore` 实用工具将数据还原到 Amazon DocumentDB 集群。

   ```
   mongorestore --ssl \
       --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017" \
       --numParallelCollections 4 \
       --username=<yourUsername> \
       --password=<yourPassword> \
       --sslCAFile global-bundle.pem restaurantDump.bson
   ```

1. **使用 `mongoexport` 导出数据**：要完成本教程，请以 JSON 文件的格式从集群中导出数据，与您在步骤 1 中导入的文件没有什么不同。

   ```
   mongoexport --ssl \
       --host="tutorialCluster.node.us-east-1.docdb.amazonaws.com:27017" \
       --collection=restaurants \
       --db=business \
       --out=restaurant2.json \
       --username=<yourUsername> \
       --password=<yourPassword> \
       --sslCAFile global-bundle.pem
   ```

1. **验证**：您可以使用以下命令验证步骤 5 的输出是否会产生与步骤 1 相同的结果。

   ```
   wc -l restaurant.json
   ```

   此命令的输出：

   ```
   2548 restaurant.json
   ```

   ```
   wc -l restaurant2.json
   ```

   此命令的输出：

   ```
   2548 restaurant2.json
   ```

# 集群快照注意事项
<a name="backup_restore-cluster_snapshot_considerations"></a>

Amazon DocumentDB 会在集群的备份窗口内创建集群的每日自动快照。Amazon DocumentDB 根据您指定的备份留存期保存集群的自动快照。如果需要，您可以将集群恢复到备份保留期中的任意时间点。在相同区域中对相同集群执行复制操作时，不会拍摄自动快照。

**Topics**
+ [备份存储](#backup_restore-backup_storage)
+ [备份时段](#backup_restore-backup_window)
+ [备份保留期](#backup_restore-backup_retention_period)
+ [复制集群快照加密](#backup_restore-encryption)

除了自动集群快照之外，您还可以手动创建集群快照。您可以同时复制自动快照和手动快照。有关更多信息，请参阅[创建手动集群快照](backup_restore-create_manual_cluster_snapshot.md)和[复制 Amazon DocumentDB 集群快照](backup_restore-copy_cluster_snapshot.md)。

**注意**  
您的集群必须处于*可用* 状态，才能拍摄自动快照。  
您无法共享 Amazon DocumentDB 自动集群快照。解决方法是通过复制自动快照来创建手动快照，然后共享该副本。有关复制快照的更多信息，请参阅[复制 Amazon DocumentDB 集群快照](backup_restore-copy_cluster_snapshot.md)。有关从快照还原集群的更多信息，请参阅[从集群快照还原](backup_restore-restore_from_snapshot.md)。

## 备份存储
<a name="backup_restore-backup_storage"></a>

您的 Amazon Documen AWS 区域 tDB 备份存储空间由备份保留期所需的备份存储空间组成，其中包括该地区的自动和手动集群快照。默认备份保留期为 1 天。有关备份存储定价的更多信息，请参阅 [Amazon DocumentDB 定价](https://aws.amazon.com/documentdb/pricing/)。

在删除集群时，所有自动快照都将被删除且无法恢复。但是，在删除集群时不会删除手动快照。如果您选择让 Amazon DocumentDB 在删除集群之前创建最终快照（手动快照），则可以使用该最终快照来恢复集群。

有关快照和存储的更多信息，请参阅[了解 备份存储使用量](backup_restore-understanding_backup_storage_usage.md)。

## 备份时段
<a name="backup_restore-backup_window"></a>

自动快照在每天的首选备份时段中进行。如果快照所需的时间超过了分配到备份时段的时间，那么即使备份时段已结束，备份过程也会继续直至完成。备份时段不能与集群的每周维护时段重叠。

如果创建集群时未指定首选备份时段，Amazon DocumentDB 将分配 30 分钟的默认备份时段。该时段是随机从与集群区域关联的 8 小时时间数据块中选择出来的。通过修改集群来更改您的首选备份时段。有关更多信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。


| 区域名称 | Region | UTC 时间数据块 | 
| --- | --- | --- | 
| 美国东部（俄亥俄州） | us-east-2 | 03:00-11:00 | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 03:00-11:00 | 
| 美国西部（俄勒冈州） | us-west-2 | 06:00-14:00 | 
| 非洲（开普敦） | af-south-1 | 03:00–11:00 | 
| 亚太地区（香港） | ap-east-1 | 06:00-14:00 | 
| 亚太地区（海得拉巴） | ap-south-2 | 06:30–14:30 | 
| 亚太地区（马来西亚） | ap-southeast-5 | 13:00-21:00 | 
| 亚太地区（孟买） | ap-south-1 | 06:00-14:00 | 
| 亚太地区（大阪） | ap-northeast-3 | 12:00-20:00 | 
| 亚太地区（首尔） | ap-northeast-2 | 13:00-21:00 | 
| 亚太地区（新加坡） | ap-southeast-1 | 14:00-22:00 | 
| 亚太地区（悉尼） | ap-southeast-2 | 12:00-20:00 | 
| 亚太地区（雅加达） | ap-southeast-3 | 08:00-16:00 | 
| 亚太地区（墨尔本） | ap-southeast-4 | 11:00-19:00 | 
| 亚太地区（泰国） | ap-southeast-7 | 15:00-23:00 | 
| 亚太地区（东京） | ap-northeast-1 | 13:00-21:00 | 
| 加拿大（中部） | ca-central-1 | 03:00-11:00 | 
| 中国（北京） | cn-north-1 | 06:00-14:00 | 
| 中国（宁夏） | cn-northwest-1 | 06:00-14:00 | 
| 欧洲地区（法兰克福） | eu-central-1 | 21:00-05:00 | 
| 欧洲（苏黎世） | eu-central-2 | 02:00-10:00 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 22:00-06:00 | 
| 欧洲（伦敦） | eu-west-2 | 22:00-06:00 | 
| 欧洲地区（米兰） | eu-south-1 | 02:00-10:00 | 
| 欧洲地区（巴黎） | eu-west-3 | 23:59-07:29 | 
| 欧洲（西班牙） | eu-south-2 | 02:00–10:00 | 
| 欧洲地区（斯德哥尔摩） | eu-north-1 | 04:00 — 12:00 | 
| 墨西哥（中部） | mx-central-1 | 03:00-11:00 | 
| 中东（阿联酋）： | me-central-1 | 05:00–13:00 | 
| 南美洲（圣保罗） | sa-east-1 | 00:00-08:00 | 
| 以色列（特拉维夫） | il-central-1 | 04:00-12:00 | 
| AWS GovCloud （美国东部） | us-gov-east-1 | 17:00-01:00 | 
| AWS GovCloud （美国西部） | us-gov-west-1 | 06:00-14:00 | 

## 备份保留期
<a name="backup_restore-backup_retention_period"></a>

备份留存期是自动备份在被自动删除之前保留的天数。Amazon DocumentDB 支持 1-35 天的备份留存期。

您可以在创建集群时设置备份保留期。如果您未明确设置备份保留期，则会为集群分配 1 天的默认备份保留期。创建集群后，您可以通过使用 AWS 管理控制台 或修改集群来修改备份保留期 AWS CLI。有关更多信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

## 复制集群快照加密
<a name="backup_restore-encryption"></a>

集群和快照加密基于 KMS 加密密钥。 KMS 密钥 ID 是 Amazon 资源名称 (ARN)、 KMS 密钥标识符或 KMS 加密密钥的 KMS 密钥别名。

以下准则和限制适用：
+ 创建快照时会从集群推断出加密。如果集群是加密的，则该集群的快照也使用相同的 KMS 密钥加密。如果集群未加密，则快照也不会加密。
+ 如果您从 Amazon Web Services 账户复制加密的集群快照，则可以为 `KmsKeyId` 指定值来使用新的 KMS 加密密钥加密副本。如果您不为 `KmsKeyId` 指定值，则使用与源集群快照相同的 KMS 密钥来加密集群快照的副本。
+ 如果您复制从其他 Amazon Web Services 账户共享的加密集群快照，则必须为 `KmsKeyId` 指定值。
+ 要将加密的集群快照复制到另一个 Amazon Web Services 区域，请设置 `KmsKeyId` 为要用于加密目标区域中集群快照副本的 KMS 密钥 ID。KMS 加密密钥是特定于其创建时所在的 Amazon Web Services 区域的，您无法将一个 Amazon Web Services 区域中的加密密钥用于另一个 Amazon Web Services 区域。
+ 如果您复制未加密的集群快照并为 `KmsKeyId` 参数指定值，则会返回错误。

# 比较自动快照和手动快照
<a name="backup_restore-compare_automatic_manual_snapshots"></a>

以下是 Amazon DocumentDB（与 MongoDB 兼容）自动快照和手动快照的主要功能。

**Amazon DocumentDB 自动快照具有以下主要特征：**
+ **自动快照命名**：自动快照名称遵循模式 `rds:<cluster-name>-yyyy-mm-dd-hh-mm`，其中 `yyyy-mm-dd-hh-mm` 表示创建快照的日期和时间。
+ **按计划自动创建**：当您创建或修改集群时，可将*备份留存期*设置为从 1 到 35 天的整数值。默认情况下，新集群的备份保留期为 1 天。备份保留期定义自动快照在被自动删除之前保留的天数。您不能对 Amazon DocumentDB 集群禁用自动备份。

  除了设置备份保留期，您还可以设置*备份时段*，即一天中创建自动快照的时间。
+ **删除自动快照**：当您删除自动快照的集群时，将会删除自动快照。您不能手动删除自动快照。
+ **增量**：在备份留存期内会记录数据库更新，因此存在增量更改记录。
+ **从自动快照还原**：您可以使用 AWS 管理控制台 或 AWS CLI从自动快照还原。使用从快照还原时 AWS CLI，必须在集群*可用*后单独添加实例。
+ **共享**：您无法共享 Amazon DocumentDB 自动集群快照。解决方法是通过复制自动快照来创建手动快照，然后共享该副本。有关复制快照的更多信息，请参阅[复制 Amazon DocumentDB 集群快照](backup_restore-copy_cluster_snapshot.md)。有关从快照还原集群的更多信息，请参阅[从集群快照还原](backup_restore-restore_from_snapshot.md)。
+ **可从备份留存期内的任何点还原**：由于数据库更新采用增量式记录，所以可将集群还原至备份留存期内的任何时间点。

  当您使用自动快照或从还原中 point-in-time恢复时 AWS CLI，必须在集群*可用*后单独添加实例。

**Amazon DocumentDB 手动快照具有以下主要特征：**
+ **按需创建** — Amazon DocumentDB 手动快照是使用亚马逊 DocumentDB 管理控制台按需创建的，或者。 AWS CLI
+ **删除手动快照**：仅当您使用 Amazon DocumentDB 控制台或 AWS CLI显式删除手动快照时，才会将其删除。在删除手动快照的集群时，不会删除手动快照。
+ **完整备份**：拍摄手动快照时，会创建并存储您的集群的完整备份。
+ **手动快照命名**：您可以指定手动快照名称。Amazon DocumentDB 不会在名称中添加 `datetime` 印章，因此，如果您想在名称中包含该信息，则必须添加该信息。
+ **从手动快照还原**：您可以使用控制台或 AWS CLI从手动快照还原。使用从快照还原时 AWS CLI，必须在集群*可用*后单独添加实例。
+ S@@ **ervic** e Quotas — 每个用户最多只能拥有 100 个手动快照 AWS 区域。
+ **共享**：您可以共享手动集群快照，这些快照可以由授权的 AWS 账户复制。您可以共享加密或未加密的手动快照。有关复制快照的更多信息，请参阅[复制 Amazon DocumentDB 集群快照](backup_restore-copy_cluster_snapshot.md)。
+ **还原到制作手动快照的时间**：在从手动快照还原时，将还原到制作手动快照的时间。

  使用从快照还原时 AWS CLI，必须在集群*可用*后单独添加实例。

# 创建手动集群快照
<a name="backup_restore-create_manual_cluster_snapshot"></a>

您可以使用 AWS 管理控制台 或创建手动快照 AWS CLI。创建快照所用时间因数据库大小而异。在创建快照时，您必须执行以下操作：

1. 确定要备份的集群。

1. 为快照指定名称。这样，您以后便可从中还原。

------
#### [ Using the AWS 管理控制台 ]

要使用创建手动快照 AWS 管理控制台，您可以按照以下任一方法进行操作。

1. **方法 1：**

   1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

   1. 在导航窗格中，选择**快照**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   1. 在 **Snapshots (快照)** 页面上，选择 **Create (创建)**。

   1. 在 **Create cluster snapshot (创建集群快照)** 页面上：

      1. **集群标识符**：从集群的下拉列表中，选择要为其创建快照的集群。

      1. **快照标识符**：输入快照的名称。

         快照命名约束：
         + 长度为 [1-255] 个字母、数字或连字符。
         + 第一个字符必须是字母。
         + 不能以连字符结尾或包含两个连续的连字符。
         + 对于每个区域的每个 AWS 账户的所有集群（跨 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB）必须是唯一的。

      1. 选择**创建**。

1. **方法 2：**

   1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

   1. 在导航窗格中，选择**集群**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   1. 在 **Clusters (集群)** 页面上，选择要拍摄快照的集群左侧的按钮。

   1. 从 **Actions (操作)** 菜单中，选择 **Take snapshot (拍摄快照)**。

   1. 在 **Create cluster snapshot (创建集群快照)** 页面上：

      1. **快照标识符**：输入快照的名称。

         快照命名约束：
         + 长度为 [1-63] 个字母、数字或连字符。
         + 第一个字符必须是字母。
         + 不能以连字符结尾或包含两个连续的连字符。
         + 对于每个区域的每个 AWS 账户的所有集群（跨 Amazon RDS、Amazon Neptune 和 Amazon DocumentDB）必须是唯一的。

      1. 选择**创建**。

------
#### [ Using the AWS CLI ]

要使用创建集群快照 AWS CLI，请使用带有以下参数的`create-db-cluster-snapshot`操作。

**参数**
+ **--db-cluster-identifier**：必需。要拍摄快照的集群的名称。该集群必须存在且*可用*。
+ **--db-cluster-snapshot-identifier**：必需。正在创建的手动快照的名称。

以下示例为名为 `sample-cluster` 的集群创建名为 `sample-cluster-snapshot` 的快照。

对于 Linux、macOS 或 Unix：

```
aws docdb create-db-cluster-snapshot \
    --db-cluster-identifier sample-cluster \
    --db-cluster-snapshot-identifier sample-cluster-snapshot
```

对于 Windows：

```
aws docdb create-db-cluster-snapshot ^
    --db-cluster-identifier sample-cluster ^
    --db-cluster-snapshot-identifier sample-cluster-snapshot
```

此操作的输出将类似于下文。

```
{
    "DBClusterSnapshot": {
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1b",
            "us-east-1c"
        ],
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot",
        "DBClusterIdentifier": "sample-cluster",
        "SnapshotCreateTime": "2020-04-24T04:59:08.475Z",
        "Engine": "docdb",
        "Status": "creating",
        "Port": 0,
        "VpcId": "vpc-abc0123",
        "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
        "MasterUsername": "master-user",
        "EngineVersion": "4.0.0",
        "SnapshotType": "manual",
        "PercentProgress": 0,
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key",
        "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:<accountID>:cluster-snapshot:sample-cluster-snapshot"
    }
}
```

------

# 复制 Amazon DocumentDB 集群快照
<a name="backup_restore-copy_cluster_snapshot"></a>

在 Amazon DocumentDB 中，您可以将快照复制到同一个文件 AWS 区域 或另一个文件中。 AWS 区域您也可以将共享快照以相同 AWS 区域 或不同的方式复制到您的帐户 AWS 区域。有关共享快照的更多信息，请参阅[Amazon DocumentDB 集群快照共享](backup_restore-share_cluster_snapshots.md)。

**注意**  
Amazon DocumentDB 根据您保留的备份和快照数据量以及您保留的时间对您进行收费。有关与 Amazon DocumentDB 备份和快照关联的存储的更多信息，请参阅[了解 备份存储使用量](backup_restore-understanding_backup_storage_usage.md)。有关 Amazon DocumentDB 存储的定价信息，请参阅 [Amazon DocumentDB 定价](https://aws.amazon.com/documentdb/pricing/)。

**Topics**
+ [复制共享快照](#backup_restore-copy_shared_cluster_snapshot)
+ [跨越复制快照 AWS 区域](#backup_restore-copy_snapshot_across_regions)
+ [限制](#backup_restore-copy_cluster_snapshot-limitations)
+ [处理加密](#backup_restore-copy_cluster_snapshot-handle_encryption)
+ [参数组注意事项](#backup_restore-copy_cluster_snapshot-parameter_group_considerations)
+ [复制集群快照](#backup_restore-copy_a_cluster_snapshot)

## 复制共享快照
<a name="backup_restore-copy_shared_cluster_snapshot"></a>

您可以复制其他 AWS 账户与您共享的快照。如果您要复制已从其他 AWS 账户共享的加密快照，则必须有权访问用于 AWS KMS 加密快照的加密密钥。有关更多信息，请参阅 [处理加密](#backup_restore-copy_cluster_snapshot-handle_encryption)。

## 跨越复制快照 AWS 区域
<a name="backup_restore-copy_snapshot_across_regions"></a>

当您将快照复制到与源快照不同的快照时 AWS 区域，每个副本都是完整快照。 AWS 区域 完整快照副本包含恢复 Amazon DocumentDB 集群需要的所有数据和元数据。

## 限制
<a name="backup_restore-copy_cluster_snapshot-limitations"></a>

复制快照时，存在以下一些限制：
+ 如果您在目标快照可用之前删除了源快照，则快照复制将失败。在删除源快照之前，请确保目标快照的状态为 `AVAILABLE`。
+ 每个账户最多可以同时进行到同一目标区域的五个快照复制请求。
+ 根据所 AWS 区域 涉及的内容和要复制的数据量，跨区域快照复制可能需要数小时才能完成。有时，某一给定的源 AWS 区域可能会发出大量跨区域快照复制请求。在这些情况下，Amazon DocumentDB 可能会将来自该来源的新跨区域复制请求放 AWS 区域 入队列，直到一些正在进行的副本完成。当复制请求在队列中时，不显示有关这些复制请求的进度信息。复制开始后即显示进度信息。

## 处理加密
<a name="backup_restore-copy_cluster_snapshot-handle_encryption"></a>

您可以复制已使用 AWS KMS 加密密钥加密的快照。如果您复制加密的快照，则此快照的副本也必须加密。如果您在其中复制加密快照 AWS 区域，则可以使用与原始快照相同的 AWS KMS 加密密钥对副本进行加密，也可以指定不同的 AWS KMS 加密密钥。如果您跨区域复制加密快照，则不能对副本使用与源快照相同的 AWS KMS 加密密钥，因为 AWS KMS 密钥是特定于区域的。相反，您必须指定在目标 AWS 区域 n 中有效的 AWS KMS 密钥。

源快照在复制过程中保持加密状态。有关更多信息，请参阅 [Amazon DocumentDB 中的数据保护](security.data-protection.md)。

**注意**  
对于 Amazon DocumentDB 集群快照，在复制快照时，您无法对未加密的集群快照进行加密。

## 参数组注意事项
<a name="backup_restore-copy_cluster_snapshot-parameter_group_considerations"></a>

跨区域复制快照时，复制不包括由原始 Amazon DocumentDB 集群使用的参数组。当您还原快照以创建新集群时，该集群将获得创建 AWS 区域 它的默认参数组。要为新的集群提供与源相同的参数组，您必须执行以下操作：

1. 在目标中 AWS 区域，[使用与原始集群相同的设置创建一个 Amazon DocumentDB 集群参数组](https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_groups-create.html)。如果新版本中已经存在一个 AWS 区域，则可以使用那个。

1. 在目标中恢复快照后 AWS 区域，修改新的 Amazon DocumentDB 集群并添加上一步中的新参数组或现有参数组。有关更多信息，请参阅 [修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

## 复制集群快照
<a name="backup_restore-copy_a_cluster_snapshot"></a>

您可以使用 AWS 管理控制台 或复制 Amazon DocumentDB 集群 AWS CLI，如下所示。

------
#### [ Using the AWS 管理控制台 ]

要使用创建群集快照的副本 AWS 管理控制台，请完成以下步骤。此过程适用于在相同 AWS 区域 区域或跨区域复制加密或未加密的集群快照。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**快照**，然后选择要复制的快照左侧的按钮。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在 **Actions** 菜单中，选择 **Copy**。

1. 在出现的 **Make Copy of cluster snapshot**（复制集群快照）页面中，完成 **Settings**（设置）部分。

   1. **目标区域**：可选。要将集群快照复制到其他集群快照 AWS 区域，请 AWS 区域 为**目标区域**选择该快照。

   1. **新快照标识符**：输入新快照的名称。

      目标快照命名约束：
      + 不能是现有快照的名称。
      + 长度为 [1-63] 个字母、数字或连字符。
      + 第一个字符必须是字母。
      + 不能以连字符结尾或包含两个连续的连字符。
      + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。

   1. **复制标签**：要将您在源快照上拥有的任何标签复制到快照副本，请选择**复制标签**。

1. 完成 **E ncryption-at-rest** 部分。

   1. **静态加密**：如果您的快照未加密，则这些选项对您不适用，因为您无法从未加密的快照创建加密的副本。如果您的快照已加密，则可以更改静态加密期间 AWS KMS key 使用的快照。

      有关对快照副本进行加密的更多信息，请参阅[复制集群快照加密](backup_restore-cluster_snapshot_considerations.md#backup_restore-encryption)。

      有关静态加密的更多信息，请参阅 [Amazon DocumentDB 静态数据加密](encryption-at-rest.md)。

   1. **AWS KMS 密钥**-从下拉列表中选择以下选项之一：
      + **（默认）aws/r** ds — 账号和 AWS KMS 密钥 ID 列在此选项后面。
      + **< some-key-name >** — 如果您创建了密钥，则会列出该密钥供您选择。
      + **输入一个密钥 ARN**：在 **ARN** 框中，输入 AWS KMS 密钥的 Amazon 资源名称（ARN）。ARN 的格式为 `arn:aws:kms:<region>:<accountID>:key/<key-id> `。

1. 要制作所选快照的副本，请选择 **Copy snapshot (复制快照)**。或者，您可以选择**取消**以便不创建快照的副本。

------
#### [ Using the AWS CLI ]

要使用 AWS CLI创建未加密集群快照的副本，请使用带以下参数的 `copy-db-cluster-snapshot` 操作。如果要将快照复制到另一个快照 AWS 区域，请运行将快照复制 AWS 区域 到的命令。
+ **--source-db-cluster-snapshot-identifier**：必需。要制作副本的集群快照的标识符。集群快照必须存在并且处于可用 状态。如果您要将快照复制到另一个快照 AWS 区域 或者要复制共享集群快照，则此标识符必须采用源集群快照的 ARN 格式。此参数不区分大小写。
+ **--target-db-cluster-snapshot-identifier**：必需。要从源集群快照创建的新集群快照标识符​。此参数不区分大小写。

  目标快照命名约束：
  + 不能是现有快照的名称。
  + 长度为 [1-63] 个字母、数字或连字符。
  + 第一个字符必须是字母。
  + 不能以连字符结尾或包含两个连续的连字符。
  + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。
+ **--source-region**— 如果您要将快照复制到另一个快照 AWS 区域，请指定要从中复制加密的集群快照。 AWS 区域 

  如果您复制快照到另一 AWS 区域 ，且不指定 `--source-region`，则必须指定 `pre-signed-url` 选项代替。该`pre-signed-url`值必须是包含签名版本 4 签名请求的 URL，以便在复制集群快照的源 AWS 区域 中调用`CopyDBClusterSnapshot`操作。要了解更多信息`pre-signed-url`，请参阅[复制DBCluster快照](https://docs.aws.amazon.com/documentdb/latest/developerguide/API_CopyDBClusterSnapshot.html)。
+ **--kms-key-id**：用于对集群快照副本进行加密的密钥的 KMS 密钥标识符。

  如果您要将加密的集群快照复制到另一个集群快照 AWS 区域，则此参数为必填项。您必须为目标指定 KMS 密钥 AWS 区域。

  如果您要在同一个中复制加密的集群快照 AWS 区域，则 AWS KMS 密钥参数是可选的。集群快照的副本使用与源集群快照相同的 AWS KMS 密钥进行加密。如果要指定用于 AWS KMS 加密副本的新加密密钥，则可以使用此参数进行加密。
+ **--copy-tags**— 可选。要复制过来的标签和值。

要在正在进行复制时取消操作，您可以在集群快照处于**正在复制**状态时删除由 `--target-db-cluster-snapshot-identifier` 或 `TargetDBClusterSnapshotIdentifier` 标识的目标集群快照。

**Example**  
**示例 1：将未加密的快照复制到同一区域**  
以下 AWS CLI 示例创建了与源快照`sample-cluster-snapshot` AWS 区域 相同`sample-cluster-snapshot-copy`的 named 的副本。创建副本时，原始快照上的所有标签都将复制到快照副本。  
对于 Linux、macOS 或 Unix：  

```
aws docdb copy-db-cluster-snapshot \
    --source-db-cluster-snapshot-identifier sample-cluster-snapshot \
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \
    --copy-tags
```
对于 Windows：  

```
aws docdb copy-db-cluster-snapshot ^
    --source-db-cluster-snapshot-identifier sample-cluster-snapshot ^
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy ^
    --copy-tags
```
此操作的输出将类似于下文。  

```
{
    "DBClusterSnapshot": {
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1b",
            "us-east-1c"
        ],
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy",
        "DBClusterIdentifier": "sample-cluster",
        "SnapshotCreateTime": "2020-03-27T08:40:24.805Z",
        "Engine": "docdb",
        "Status": "copying",
        "Port": 0,    
        "VpcId": "vpc-abcd0123",
        "ClusterCreateTime": "2020-01-10T22:13:38.261Z",
        "MasterUsername": "master-user",
        "EngineVersion": "4.0.0",
        "SnapshotType": "manual",
        "PercentProgress": 0,
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/sample-key-id",
        "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot-copy",
        "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot"
    }
}
```

**Example**  
**示例 2：跨复制未加密的快照 AWS 区域**  
以下 AWS CLI 示例创建了具有 AR `arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot` N 的`sample-cluster-snapshot`副本。此副本命名为，`sample-cluster-snapshot-copy`并且 AWS 区域 在其中运行命令。  
对于 Linux、macOS 或 Unix：  

```
aws docdb copy-db-cluster-snapshot \
    --source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot \
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy
```
对于 Windows：  

```
aws docdb copy-db-cluster-snapshot ^
    --source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot ^
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy
```
此操作的输出将类似于下文。  

```
{
    "DBClusterSnapshot": {
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1b",
            "us-east-1c"
        ],
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy",
        "DBClusterIdentifier": "sample-cluster",
        "SnapshotCreateTime": "2020-04-29T16:45:51.239Z",
        "Engine": "docdb",
        "AllocatedStorage": 0,
        "Status": "copying",
        "Port": 0,
        "VpcId": "vpc-abc0123",
        "ClusterCreateTime": "2020-04-28T16:43:00.294Z",
        "MasterUsername": "master-user",
        "EngineVersion": "4.0.0",
        "LicenseModel": "docdb",
        "SnapshotType": "manual",
        "PercentProgress": 0,
        "StorageEncrypted": false,
        "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot-copy",
        "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot",
    }
}
```

**Example**  
**示例 3：跨复制加密快照 AWS 区域**  
以下 AWS CLI 示例创建了`sample-cluster-snapshot`从 us-west-2 区域到 us-east-1 区域的副本。此命令是在 us-east-1 区域中调用。  
对于 Linux、macOS 或 Unix：  

```
aws docdb copy-db-cluster-snapshot \
    --source-db-cluster-snapshot-identifier arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot \
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \
    --source-region us-west-2 \
    --kms-key-id sample-us-east-1-key
```
对于 Windows：  

```
aws docdb copy-db-cluster-snapshot ^
    --source-db-cluster-snapshot-identifier arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot ^
    --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy ^
    --source-region us-west-2 ^
    --kms-key-id sample-us-east-1-key
```
此操作的输出将类似于下文。  

```
{
    "DBClusterSnapshot": {  
        "AvailabilityZones": [],
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy",
        "DBClusterIdentifier": "sample-cluster",
        "SnapshotCreateTime": "2020-04-29T16:45:53.159Z",
        "Engine": "docdb",
        "AllocatedStorage": 0,
        "Status": "copying",
        "Port": 0,
        "ClusterCreateTime": "2020-04-28T16:43:07.129Z",
        "MasterUsername": "chimera",
        "EngineVersion": "4.0.0",
        "LicenseModel": "docdb",
        "SnapshotType": "manual",
        "PercentProgress": 0,
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/0846496a-d48e-41c4-9353-86d8301d7e35",
        "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot-copy",
        "SourceDBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot",
    }
}
```

**Example**  
**示例 4：跨复制未加密的共享快照 AWS 区域**  
以下 AWS CLI 示例，账户-`123456789012`，创建了账户`sample-cluster-snapshot`共享的未加密集群快照的副本，该快照`999999999999`从 us-east-1 区域到 us-west-2 区域。在 us-west-2 区域中调用此命令。有关共享快照的更多信息，请参阅[共享快照](backup_restore-share_cluster_snapshots.md#backup_restore-share_snapshots)。  
对于 Linux、macOS 或 Unix：  

```
aws docdb copy-db-cluster-snapshot \
--region us-west-2 \
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot \
--target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy
```
对于 Windows：  

```
aws docdb copy-db-cluster-snapshot ^
--region us-west-2 ^
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot ^
--target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy
```
此操作的输出将类似于下文。  

```
{
 "DBClusterSnapshots": [
 {
 "AvailabilityZones": [],
 "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy",
 "DBClusterIdentifier": "sample-cluster",
 "SnapshotCreateTime": "2025-08-22T11:27:00.497000+00:00",
 "Engine": "docdb",
 "Status": "copying",
 "Port": 0,
 "ClusterCreateTime": "2024-07-02T16:44:50.246000+00:00",
 "MasterUsername": "master-user",
 "EngineVersion": "5.0.0",
 "SnapshotType": "manual",
 "PercentProgress": 0,
 "StorageEncrypted": false,
 "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot-copy",
 "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot"
 }
 ]
}
```

**Example**  
**示例 5：跨复制加密的共享快照 AWS 区域**  
以下 AWS CLI 示例，账户-`123456789012` 创建账户`sample-cluster-snapshot`共享的加密集群快照的副本，`999999999999`从 us-east-1 区域到 us-west-2 区域。目标快照使用客户管理的 KMS 密钥进行加密：`arn:aws:kms:us-west-2:123456789012:key/6c1f3264-1797-472b-ba37-03011e682d28`。在 us-west-2 区域中调用此命令。有关共享快照的更多信息，请参阅[共享快照](backup_restore-share_cluster_snapshots.md#backup_restore-share_snapshots)。  
对于 Linux、macOS 或 Unix：  

```
aws docdb copy-db-cluster-snapshot \
--region us-west-2 \
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot \
--target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/6c1f3264-1797-472b-ba37-03011e682d28
```
对于 Windows：  

```
aws docdb copy-db-cluster-snapshot ^
--region us-west-2 ^
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot ^
--target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy ^
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/6c1f3264-1797-472b-ba37-03011e682d28
```
此操作的输出将类似于下文。  

```
{
 "DBClusterSnapshots": [
 {
 "AvailabilityZones": [],
 "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy",
 "DBClusterIdentifier": "sample-cluster",
 "SnapshotCreateTime": "2025-08-22T11:27:00.497000+00:00",
 "Engine": "docdb",
 "Status": "copying",
 "Port": 0,
 "ClusterCreateTime": "2024-07-02T16:44:50.246000+00:00",
 "MasterUsername": "master-user",
 "EngineVersion": "5.0.0",
 "SnapshotType": "manual",
 "PercentProgress": 0,
 "StorageEncrypted": true,
 "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/6c1f3264-1797-472b-ba37-03011e682d28",
 "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot-copy",
 "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:999999999999:cluster-snapshot:sample-cluster-snapshot"
 }
 ]
}
```

**注意**  
有关对快照副本进行加密的更多信息，请参阅[复制集群快照加密](backup_restore-cluster_snapshot_considerations.md#backup_restore-encryption)。  
有关静态加密的更多信息，请参阅 [Amazon DocumentDB 静态数据加密](encryption-at-rest.md)。

------

# Amazon DocumentDB 集群快照共享
<a name="backup_restore-share_cluster_snapshots"></a>

使用 Amazon DocumentDB，您可以按以下方式共享手动集群快照：
+ 共享手动集群快照（无论是加密还是未加密）都允许授权 AWS 账户复制快照。
+ 共享手动集群快照（无论是加密的还是未加密的）都使授权 AWS 账户能够直接从快照中恢复集群，而不必复制集群并从中恢复。

**注意**  
要共享自动集群快照，请通过复制自动快照来创建手动集群快照，然后共享该副本。此过程也适用于 AWS 备份生成的资源。

您可以与最多 20 个其他人共享手动快照 AWS 账户。您也可以将未加密的手动快照作为公有快照进行共享，这样所有 账户均可使用此快照。当以公有快照形式共享快照时，确保不要将您的私有信息包含在任何公有快照之中。

当与其他人共享手动快照 AWS 账户，并且使用 AWS CLI 或 Amazon DocumentDB API 从共享快照恢复集群时，必须将共享快照的亚马逊资源名称 (ARN) 指定为快照标识符。

## 共享加密的快照
<a name="backup_restore-share_encrypted_snapshots"></a>

以下限制适用于共享加密快照：
+ 您无法公开共享加密的快照。
+ 您无法共享已使用共享快照的账户的默认 AWS KMS 加密密钥加密的快照。

按照以下步骤共享加密的快照。

1. 与您希望能够访问快照的所有账户共享用于加密快照的 AWS Key Management Service (AWS KMS) 加密密钥。

   您可以通过将其他 AWS 账户添加到密钥策略中来与其他账户共享 AWS KMS 加密 AWS KMS 密钥。有关更新密钥策略的详细信息，请参阅*AWS Key Management Service 开发人员指南*[中的在 AWS KMS 中使用密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。有关创建密钥策略的示例，请参阅本主题下文中的 [创建 IAM 策略以启用加密快照的复制](#backup_restore-share_encrypted_snapshots-create_key_policy)。

1. [如下所示](#backup_restore-share_snapshots)，使用与其他账户共享加密快照。 AWS CLI

### 允许访问 AWS KMS 加密密钥
<a name="backup_restore-share_encrypted_snapshots-share_key_policy"></a>

 AWS 账户 要让其他人复制从您的账户共享的加密快照，则您与之共享快照的账户必须有权访问加密快照的 AWS KMS 密钥。要允许其他账户访问 AWS KMS 密钥，请在密钥策略中 AWS KMS 使用您作为委托人共享的账户的 ARN 更新该密钥的 AWS KMS 密钥策略。然后允许 `kms:CreateGrant` 操作。

在您授予账户访问您的 AWS KMS 加密密钥的权限后，要复制您的加密快照，该账户必须创建一个 AWS Identity and Access Management (IAM) 用户（如果还没有）。此外，该账户还必须向该 IAM 用户附加一个 IAM 策略，允许该用户使用您的 AWS KMS 密钥复制加密快照。由于 AWS KMS 安全限制，该账户必须是 IAM 用户，并且不能是根 AWS 账户 身份。

在以下密钥策略示例中，用户 123451234512 是加密密钥的所有者。 AWS KMS 用户 123456789012 是要与之共享密钥的账户。此更新的密钥政策允许账户访问 AWS KMS 密钥。它通过将用户 123456789012 的根 AWS 账户 身份的 ARN 作为策略的委托人并允许该操作来实现此目的。`kms:CreateGrant`

------
#### [ JSON ]

****  

```
{
    "Id": "key-policy-1",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {"AWS": [
                "arn:aws:iam::123451234512:user/KeyUser",
                "arn:aws:iam::123456789012:root"
            ]},
            "Action": [
                "kms:CreateGrant",
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"},
            {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {"AWS": [
                "arn:aws:iam::123451234512:user/KeyUser",
                "arn:aws:iam::123456789012:root"
            ]},
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
        }
    ]
}
```

------

### 创建 IAM 策略以启用加密快照的复制
<a name="backup_restore-share_encrypted_snapshots-create_key_policy"></a>

当外部用户 AWS 账户 有权访问您的 AWS KMS 密钥时，该账户的所有者可以创建策略，允许为该账户创建的 IAM 用户复制使用该 AWS KMS 密钥加密的加密快照。

以下示例显示了可以附加到 AWS 账户 123456789012 的 IAM 用户的策略。该策略允许 IAM 用户从账户 123451234512 中复制已在 us-west-2 区域使用密钥 AWS KMS 加密的共享快照。`c989c1dd-a3f2-4a5d-8d96-e793d082ab26`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowUseOfTheKey",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey",
                "kms:CreateGrant",
                "kms:RetireGrant"
            ],
            "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"]
        },
        {
            "Sid": "AllowAttachmentOfPersistentResources",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
```

------

有关更新密钥政策的详细信息，请参阅 *AWS Key Management Service 开发人员指南*中的[在 AWS KMS中使用密钥政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

## 共享快照
<a name="backup_restore-share_snapshots"></a>

您可以使用或共享 Amazon DocumentDB 手动集群快照（或自动快照的副本）： AWS 管理控制台 AWS CLI

------
#### [ Using the AWS 管理控制台 ]

要使用共享快照 AWS 管理控制台，请完成以下步骤：

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

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

1. 选择要共享的手动快照。

1. 在**操作**下拉菜单中，选择“共享”。

1. 为**数据库快照可见性**选择以选项之一。
   + 如果源未加密，请选择 P **ubli** c 以允许所有 AWS 账户从您的手动快照还原集群。或者选择 P **ri** vate，仅允许您指定的 AWS 账户从手动快照还原群集。
**警告**  
如果您将**数据库快照可见性**设置为 “**公开**”，则所有 AWS 账户都可以从您的手动快照还原集群并可以访问您的数据。请勿将包含私有信息的任何手动集群快照作为**公有**共享。
   + 如果源已加密，由于已加密的快照无法公开共享，**DB snapshot visibility (数据库快照可见性)** 将设为 **Private (私密)**。
**注意**  
使用默认值加密的快照 AWS KMS key 无法共享。

1. 在**AWS 账户 ID** 中 AWS ，输入您想要允许从手动快照还原集群的账户的账户标识符，然后选择**添加**。重复此操作以添加其他 AWS 账户标识符，最多 20 个 AWS 账户。

   如果您在向允许的账户列表中添加 AWS 账户标识符时出错，则可以通过选择错误的 AWS 账户标识符右侧的 **“删除”** 将其从列表中删除。  
![\[图：共享快照首选项\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/share-snapshot.png)

1. 为所有要允许恢复手动快照的 AWS 账户添加标识符后，选择 “**保存” 以保存**所做的更改。

------
#### [ Using the AWS CLI ]

要使用共享快照，请使用 Amazon DocumentDB 操作`modify-db-snapshot-attribute`。 AWS CLI使用`--values-to-add`参数 IDs 为有权恢复手动快照的添加列表。 AWS 账户 

以下示例允许两个 AWS 账户 标识符 123451234512 和 123456789012 恢复名为的快照。`manual-snapshot1`它还会删除 `all` 属性值以将该快照标记为私有。

对于 Linux、macOS 或 Unix：

```
aws docdb modify-db-cluster-snapshot-attribute \
    --db-cluster-snapshot-identifier sample-cluster-snapshot \
    --attribute-name restore \
    --values-to-add '["123451234512","123456789012"]'
```

对于 Windows：

```
aws docdb modify-db-cluster-snapshot-attribute ^
    --db-cluster-snapshot-identifier sample-cluster-snapshot ^
    --attribute-name restore ^
    --values-to-add '["123451234512","123456789012"]'
```

此操作的输出将类似于下文。

```
{
    "DBClusterSnapshotAttributesResult": {
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot",
        "DBClusterSnapshotAttributes": [
            {
                "AttributeName": "restore",
                "AttributeValues": [
                    "123451234512",
                    "123456789012"
                ]
            }
        ]
    }
}
```

要从列表中删除 AWS 账户 标识符，请使用`--values-to-remove`参数。以下示例阻止 AWS 账户 ID 123456789012 恢复快照。

对于 Linux、macOS 或 Unix：

```
aws docdb modify-db-cluster-snapshot-attribute \
    --db-cluster-snapshot-identifier sample-cluster-snapshot \
    --attribute-name restore \
    --values-to-remove '["123456789012"]'
```

对于 Windows：

```
aws docdb modify-db-cluster-snapshot-attribute ^
    --db-cluster-snapshot-identifier sample-cluster-snapshot ^
    --attribute-name restore ^
    --values-to-remove '["123456789012"]'
```

此操作的输出将类似于下文。

```
{
    "DBClusterSnapshotAttributesResult": {
        "DBClusterSnapshotIdentifier": "sample-cluster-snapshot",
        "DBClusterSnapshotAttributes": [
            {
                "AttributeName": "restore",
                "AttributeValues": [
                    "123451234512"
                ]
            }
        ]
    }
}
```

------

# 从集群快照还原
<a name="backup_restore-restore_from_snapshot"></a>

Amazon DocumentDB（与 MongoDB 兼容）会为您的存储卷创建一个集群快照。可通过从集群快照还原来创建新集群。在还原集群时，您需提供用于还原的集群快照的名称以及还原创建的新集群的名称。您无法从快照还原到现有集群，因为还原时将新建一个新集群。

当从集群快照还原集群时：
+ 此操作仅还原集群，而不还原集群的实例。您必须调用 `create-db-instance` 操作为还原的集群创建实例，并在 `--db-cluster-identifier` 中指定还原的集群的标识符。您只能在集群*可用* 后才能创建实例。
+ 您无法将加密快照还原到未加密集群。但是，您可以通过指定密 AWS KMS 钥将未加密的快照还原到加密的集群。
+ 要从加密快照恢复集群，您必须有权访问 AWS KMS 密钥。

**注意**  
您无法将 3.6 集群恢复为 4.0 集群，但可以从一个集群版本迁移到另一个集群版本。有关更多信息，请转至 [迁移到 Amazon DocumentDB](docdb-migration.md)。

------
#### [ Using the AWS 管理控制台 ]

以下过程说明如何使用 Amazon DocumentDB 管理控制台从集群快照中还原 Amazon DocumentDB 集群。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**快照**，然后选择要用于还原集群的快照左侧的按钮。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在 **Actions (操作)** 菜单上，选择 **Restore (还原)**。

1. 在**还原快照**页面上，填写**配置**部分。

   1. **集群标识符**：新集群的名称。您可以接受 Amazon DocumentDB 提供的名称或键入您喜欢的名称。Amazon 文档DBsupplied 名称采用`docdb-`加上 UTC 时间戳的格式；例如，。`docdb-yyyy-mm-dd-hh-mm-ss`

   1. **实例类**：新集群的实例类。您可以接受默认实例类或从下拉列表中选择实例类。

   1. **实例数**：要使用此集群创建的实例的数量。您可以接受 3 个实例的默认值（1 个主副本 read/write 和 2 个只读副本），也可以从下拉列表中选择实例数量。

1. 对于**集群存储配置**，请选择一个存储选项。
**注意**  
**亚马逊 DocumentDB I/O 优化的**存储配置仅适用于亚马逊 DocumentDB 5.0 和 8.0 引擎版本。

1. 如果您对集群配置满意，请选择 **Restore cluster (还原集群)** 并等待集群还原。

1. 如果您更希望更改某些配置（如指定非默认 Amazon VPC 或安全组），请在页面底部左边选择**显示高级设置**，然后继续执行以下步骤。

   1. 完成 **Network settings (网络设置)** 部分。
      + **虚拟私有云（VPC）**：接受当前 VPC，或者从下拉列表中选择一个 VPC。
      + **子网组**：接受 `default` 子网组，或从下拉列表中选择一个子网组。
      + **VPC 安全组**：接受 `default (VPC)` 安全组，或从列表中选择一个安全组。

   1. 完成**集群选项**部分。
      + **数据库端口**：接受默认端口 `27017`，或使用向上或向下箭头来设置要用于应用程序连接的端口。

   1. 完成**加密**部分。
      + **静态加密**：如果您的快照已加密，那么这些选项对您不可用。如果它未加密，您可以选择以下选项之一：
        + 要加密集群的所有数据，请选择**启用 encryption-at-rest**。如果您选择此选项，则必须指定一个 KMS 密钥。
        + 要不加密集群的数据，请选择**禁用 encryption-at-rest**。如果您选择此选项，您便已完成加密部分。
      + **AWS KMS 密钥**-从下拉列表中选择以下选项之一：
        + **（默认）aws/r** ds — 账号和 AWS KMS 密钥 ID 列在此选项后面。
        + **客户管理的密钥** — 只有在 AWS Identity and Access Management (IAM) 控制台中创建了 IAM 加密密钥时，此选项才可用。您可以选择该密钥来加密集群。
        + **输入密钥 ARN** — 在 **ARN** 框中，输入密钥的亚马逊资源名称 (ARN)。 AWS KMS ARN 的格式为 `arn:aws:kms:<region>:<accountID>:key/<key-id>`。

   1. 完成 **Log exports (日志导出)** 部分。
      + **选择要发布到的日志类型 CloudWatch**-选择以下选项之一：
        + **已启用**-允许您的集群将 DDL 日志导出到 Amazon CloudWatch 日志。
        + **已禁用**-阻止您的集群将 DDL 日志导出到 Amazon CloudWatch 日志。**Disabled (已禁用)** 为默认值。
      + **IAM 角色**：从列表中选择 *RDS 服务相关角色*。

   1. 完成 **Tags (标签)** 部分。
      + **添加标签**：在*密钥*框中，输入集群标签的名称。在 *Value (值)* 框中，可以选择输入标签值。标签与 AWS Identity and Access Management (IAM) 策略一起使用，用于管理对 Amazon DocumentDB 资源的访问权限并控制可以对资源应用哪些操作。

   1. 完成 **Deletion protection (删除保护)** 部分。
      + **启用删除保护**：防止集群被意外删除。启用该选项后，您将无法删除集群。

1. 选择 **Restore cluster (还原集群)**。

------
#### [ Using the AWS CLI ]

要使用从快照还原集群 AWS CLI，请使用带有以下参数的`restore-db-cluster-from-snapshot`操作。有关更多信息，请参阅 [RestoreDBClusterFromSnapshot](API_RestoreDBClusterFromSnapshot.md)。
+ **--db-cluster-identifier**：必需。操作创建的集群的名称。在执行此操作之前，不能存在此名称的集群。

  集群命名约束：
  + 长度为 [1-63] 个字母、数字或连字符。
  + 第一个字符必须是字母。
  + 不能以连字符结尾或包含两个连续的连字符。
  + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。
+ **--snapshot-identifier**：必需。用于自其还原的快照的名称。具有此名称的快照必须存在并且处于*可用* 状态。
+ **--engine**：必需。必须是 `docdb`。
+ **--storage-type standard \$1 iopt1**：可选。默认值：`standard`。
+ **--kms-key-id**— 可选。还原加密快照或从未加密快照还原时加密集群时使用的密 AWS KMS 钥标识符的 ARN。无论快照是否加密，提供 AWS KMS 密钥 ID 都会使用该 AWS KMS 密钥对还原的集群进行加密。

  `--kms-key-id` 的格式为 `arn:aws:kms:<region>:<accountID>:key/<key-id>`。如果不为 `--kms-key-id` 参数指定值，则会出现以下情况：
  + 如果中的`--snapshot-identifier`快照已加密，则使用用于加密快照的相同 AWS KMS 密钥对还原的集群进行加密。
  + 如果 `--snapshot-identifier` 中的快照未加密，还原的集群也不会加密。

对于 Linux、macOS 或 Unix：

```
aws docdb restore-db-cluster-from-snapshot \
    --db-cluster-identifier sample-cluster-restore \
    --snapshot-identifier sample-cluster-snapshot \
    --engine docdb \
    --kms-key-id arn:aws:kms:us-east-1:123456789012:key/SAMPLE-KMS-KEY-ID
```

对于 Windows：

```
aws docdb restore-db-cluster-from-snapshot ^
    --db-cluster-identifier sample-cluster-restore ^
    --snapshot-identifier sample-cluster-snapshot ^
    --engine docdb ^
    --kms-key-id arn:aws:kms:us-east-1:123456789012:key/SAMPLE-KMS-KEY-ID
```

此操作的输出将类似于下文。

```
{
    "DBCluster": {
        "AvailabilityZones": [
            "us-east-1c",
            "us-east-1b",
            "us-east-1a"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "sample-cluster-restore",
        "DBClusterParameterGroup": "default.docdb4.0",
        "DBSubnetGroup": "default",
        "Status": "creating",
        "Endpoint": "sample-cluster-restore.cluster-node.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster-restore.cluster-node.us-east-1.docdb.amazonaws.com",
        "MultiAZ": false,
        "Engine": "docdb",
        "EngineVersion": "4.0.0",
        "Port": 27017,
        "MasterUsername": "<master-user>",
        "PreferredBackupWindow": "02:00-02:30",
        "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
        "DBClusterMembers": [],
        "VpcSecurityGroups": [
            {                             
                "VpcSecurityGroupId": "sg-abcdefgh",
                "Status": "active"
            }
        ],               
        "HostedZoneId": "ABCDEFGHIJKLM",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/<sample-key-id>",
        "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster-restore",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2020-04-01T01:43:40.871Z",
        "DeletionProtection": true
    }
}
```

在集群状态为*可用* 后，请为集群创建至少一个实例。

对于 Linux、macOS 或 Unix：

```
aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster-restore  \
    --db-instance-identifier sample-cluster-restore-instance \
    --availability-zone us-east-1b \
    --promotion-tier 2 \
    --db-instance-class db.r5.large \
    --engine docdb
```

对于 Windows：

```
aws docdb create-db-instance ^
    --db-cluster-identifier sample-cluster-restore  ^
    --db-instance-identifier sample-cluster-restore-instance ^
    --availability-zone us-east-1b ^
    --promotion-tier 2 ^
    --db-instance-class db.r5.large ^
    --engine docdb
```

此操作的输出将类似于下文。

```
{
    "DBInstance": {
        "DBInstanceIdentifier": "sample-cluster-restore-instance",
        "DBInstanceClass": "db.r5.large",
        "Engine": "docdb",
        "DBInstanceStatus": "creating",
        "PreferredBackupWindow": "02:00-02:30",
        "BackupRetentionPeriod": 1,
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-abcdefgh",
                "Status": "active"
            }
        ],
        "AvailabilityZone": "us-west-2b",
        "DBSubnetGroup": {
            "DBSubnetGroupName": "default",
            "DBSubnetGroupDescription": "default",
            "VpcId": "vpc-6242c31a",
            "SubnetGroupStatus": "Complete",
            "Subnets": [
                {
                    "SubnetIdentifier": "subnet-abcdefgh",
                    "SubnetAvailabilityZone": {
                        "Name": "us-west-2a"
                    },
                    "SubnetStatus": "Active"
                },
                {
                    ...
                }
            ]
        },
        "PreferredMaintenanceWindow": "fri:09:43-fri:10:13",
        "PendingModifiedValues": {},
        "EngineVersion": "4.0.0",
        "AutoMinorVersionUpgrade": true,
        "PubliclyAccessible": false,
        "DBClusterIdentifier": "sample-cluster-restore",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/<sample-key-id>",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "CACertificateIdentifier": "rds-ca-2019",
        "PromotionTier": 2,
        "DBInstanceArn": "arn:aws:rds:us-east-1:<accountID>:db:sample-cluster-restore-instance"
    }
}
```

------

# 还原到某个时间点
<a name="backup_restore-point_in_time_recovery"></a>

您可以使用 AWS 管理控制台 或 AWS Command Line Interface (AWS CLI) 将集群还原到集群备份保留期内的任何时间点。

**注意**  
 您无法将 3.6 集群 point-in-time还原到 4.0 集群，但可以从一个集群版本迁移到另一个集群版本。有关更多信息，请转至 [迁移到 Amazon DocumentDB](docdb-migration.md)。

在将集群还原至某个时间点时，请牢记以下几点。
+ 创建新集群时将使用与源集群相同的配置，区别在于创建新集群时将使用默认参数组。要将新集群的参数组设置为源集群的参数组，请在新集群*可用* 后对其进行修改。有关修改集群的更多信息，请参阅[修改 Amazon DocumentDB 集群](db-cluster-modify.md)。

------
#### [ Using the AWS 管理控制台 ]

您可以使用完成以下操作，将群集还原到其备份保留期 point-in-time内 AWS 管理控制台。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**集群**。在集群列表中，选择要还原的集群左侧的按钮。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在 **Actions (操作)** 菜单上，选择 **Restore to point in time (还原到时间点)**。

1. 完成 **Restore time (恢复时间)** 部分，用于指定将还原到的日期和时间。

   1. **还原日期**：选择或输入介于**最早还原时间**和**最新还原时间**之间的日期。

   1. **还原时间**：选择或输入介于**最早还原时间**和**最新还原时间**之间的小时、分钟和秒。

1. 填写 **Configuration (配置)** 部分。

   1. **集群标识符**：接受默认标识符，或者输入您喜欢的标识符。

      集群命名约束：
      + 长度为 [1-63] 个字母、数字或连字符。
      + 第一个字符必须是字母。
      + 不能以连字符结尾或包含两个连续的连字符。
      + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。

   1. **实例类**：从下拉列表中，选择要用于集群实例的实例类。

   1. **实例数**：从下拉列表中，选择还原此集群时您希望创建的实例的数量。

1. 对于**集群存储配置**，请选择一个存储选项。
**注意**  
**亚马逊 DocumentDB I/O 优化的**存储配置仅适用于亚马逊 DocumentDB 5.0 和 8.0 引擎版本。

1. 可选。要配置网络设置、集群选项和启用日志导出，请选择 **Show advanced settings (显示高级设置)**，然后完成以下各部分。否则，请继续下一步。
   + **Network settings (网络设置)**

     1. **虚拟私有云（VPC）**：从下拉列表中，选择要用于此集群的 VPC。

     1. **子网组**：从下拉列表中，为此集群选择子网组。

     1. **VPC 安全组**：从下拉列表中，为此集群选择 VPC 安全组。

      
   + **Cluster options (集群选项)**

     1. **端口**：接受默认端口 (27017)，或者使用向上或向下箭头来设置与此集群进行通信的端口。

      
   + **日志导出**

     1. **审核日志**-选择此选项可启用将审核日志导出到 Amazon CloudWatch Logs。如果您选择此选项，则必须在集群的自定义参数组中启用 `audit_logs`。有关更多信息，请参阅 [审核 Amazon DocumentDB 事件](event-auditing.md)。

     1. **Profiler 日志**-选择此选项可启用将操作分析器日志导出到 Ama CloudWatch zon Logs。如果您选择此选项，还必须在集群的自定义参数组中修改以下参数：
        + `profiler`：设置为 `enabled`。
        + `profiler_threshold_ms`：设置为值 `[0-INT_MAX]`，以设置分析操作的阈值。
        + `profiler_sampling_rate`：设置为值 `[0.0-1.0]`，以设置要分析的缓慢操作的百分比。

        有关更多信息，请参阅 [分析 Amazon DocumentDB 操作](profiling.md)。

     1. **Profiler 日志** — 将分析器日志导出到 Amazon CloudWatch

     1. **IAM 角色**：从下拉列表中，选择 *RDS 服务相关角色*。
   + **标签**

     1. **添加标签**：在*密钥*框中，输入集群标签的名称。在 *Value (值)* 框中，可以选择输入标签值。标签与 AWS Identity and Access Management (IAM) 策略结合使用，以管理对 Amazon DocumentDB 资源的访问并控制可将什么操作应用于资源。
   + **删除保护** 

     1. **启用删除保护**：防止集群被意外删除。启用该选项后，您将无法删除集群。

1. 要还原集群，请选择 **Create cluster (创建集群)**。或者，您可以选择 **Cancel (取消)** 以取消操作。

------
#### [ Using the AWS CLI ]

要使用快照的备份保留期将集群还原到某个时间点，请使用带有以下参数的 `restore-db-cluster-to-point-in-time` 操作。
+ **--db-cluster-identifier**：必填项。要创建的新集群的名称。在执行该操作之前，不能存在此集群。参数值必须满足以下约束。

  集群命名约束：
  + 长度为 [1-63] 个字母、数字或连字符。
  + 第一个字符必须是字母。
  + 不能以连字符结尾或包含两个连续的连字符。
  + 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 AWS 账户的。
+ **--restore-to-time**：要将集群还原到的 UTC 日期和时间。例如 `2018-06-07T23:45:00Z`。

  时间约束：
  + 必须在集群的最新可还原时间之前。
  + 如果未提供 `--use-latest-restorable-time` 参数，则必须指定。
  + 如果 `--use-latest-restorable-time` 参数为 `true`，则无法指定。
  + 如果 `--restore-type` 参数值为 `copy-on-write`，则无法指定。
+ **--source-db-cluster-identifier**：要从中还原的源集群的名称。该集群必须存在且可用。
+ **--use-latest-restorable-time** 或 **--no-use-latest-restorable-time**：是否还原至最近的可还原备份时间。如果未提供 `--restore-to-time` 参数，则无法指定。
+ **--storage-type standard \$1 iopt1**：可选。默认值：`standard`。

该 AWS CLI 操作`restore-db-cluster-to-point-in-time`仅恢复集群，而不会恢复该集群的实例。您必须调用 `create-db-instance` 操作为还原的集群创建实例，并在 `--db-cluster-identifier` 中指定还原的集群的标识符。仅当完成 `restore-db-cluster-to-point-in-time` 操作并且还原的集群*可用* 后，您才能创建实例。

**Example**  
以下示例从快照 `sample-cluster-snapshot` 创建到最近可还原时间的 `sample-cluster-restored`。  
对于 Linux、macOS 或 Unix：  

```
aws docdb restore-db-cluster-to-point-in-time \
    --db-cluster-identifier sample-cluster-restored \
    --source-db-cluster-identifier sample-cluster-snapshot \
    --use-latest-restorable-time
```
对于 Windows：  

```
aws docdb restore-db-cluster-to-point-in-time ^
    --db-cluster-identifier sample-cluster-restored ^
    --source-db-cluster-identifier sample-cluster-snapshot ^
    --use-latest-restorable-time
```

**Example**  
以下示例从快照 `sample-cluster-snapshot` 创建到 2018 年 12 月 11 日 03:15 (UTC)（在 `sample-cluster` 的备份保留期内）的 `sample-cluster-restored`。  
对于 Linux、macOS 或 Unix：  

```
aws docdb restore-db-cluster-to-point-in-time \
    --db-cluster-identifier sample-cluster-restore \
    --source-db-cluster-identifier sample-cluster \
    --restore-to-time 2020-05-12T03:15:00Z
```
对于 Windows：  

```
aws docdb restore-db-cluster-to-point-in-time ^
    --db-cluster-identifier sample-cluster-restore ^
    --source-db-cluster-identifier sample-cluster ^
    --restore-to-time 2020-05-12T03:15:00Z
```

此操作的输出将类似于下文。

```
{
    "DBCluster": {
        "AvailabilityZones": [
            "us-east-1c",
            "us-west-2b",
            "us-west-2a"
        ],
        "BackupRetentionPeriod": 1,
        "DBClusterIdentifier": "sample-cluster-restored",
        "DBClusterParameterGroup": "sample-parameter-group",
        "DBSubnetGroup": "default",
        "Status": "creating",
        "Endpoint": "sample-cluster-restored.node.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster-restored.node.us-east-1.docdb.amazonaws.com",
        "MultiAZ": false,
        "Engine": "docdb",
        "EngineVersion": "4.0.0",
        "Port": 27017,
        "MasterUsername": "master-user",
        "PreferredBackupWindow": "02:00-02:30",
        "PreferredMaintenanceWindow": "tue:09:50-tue:10:20",
        "DBClusterMembers": [],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-abc0123",
                "Status": "active"
            }
        ],
        "HostedZoneId": "ABCDEFGHIJKLM",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:us-east-1:<accountID^>:key/sample-key",
        "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ",
        "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster-restored",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2020-04-24T20:14:36.713Z",
        "DeletionProtection": false
    }
}
```

------

# 删除集群快照
<a name="backup_restore-delete_cluster_snapshot"></a>

手动快照是一种完全备份，只有使用 AWS 管理控制台 或手动删除它时才会将其删除 AWS CLI。无法手动删除自动快照，因为自动快照仅在快照保留期已过或删除快照的集群时才会被删除。

------
#### [ Using the AWS 管理控制台 ]

要使用删除手动集群快照 AWS 管理控制台，请完成以下步骤。

1. [登录 AWS 管理控制台，然后在 /docdb 上打开亚马逊文档数据库控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/docdb)

1. 在导航窗格中，选择**快照**。
**提示**  
如果您在屏幕左侧没有看到导航窗格，请在页面左上角选择菜单图标 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_cn/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在快照列表中，选择要删除的快照左侧的按钮。快照的类型必须为**手动**。

   1. 您可以通过检查快照类型列下是否列出 `manual` 或 `automatic`，来验证快照 **Type**（类型）是否为 **manual**（手动）。

1. 从 **Actions** 菜单中选择 **Delete **。如果 **Delete (删除)** 选项不可用，您可能选择了自动快照。

1. 要删除快照，请在删除确认屏幕中选择 **Delete (删除)**。要保留快照，请选择 **Cancel (取消)**。

------
#### [ Using the AWS CLI ]

Amazon DocumentDB 手动集群快照是可以使用 AWS CLI手动删除的完整备份。您不能手动删除自动快照。

要使用删除手动集群快照 AWS CLI，请使用带有以下参数的`delete-db-cluster-snapshot`操作。

**参数**
+ **--db-cluster-snapshot-identifier**：必需。要删除的手动快照的名称。

以下示例将删除集群快照 `sample-cluster-snapshot`。

对于 Linux、macOS 或 Unix：

```
aws docdb delete-db-cluster-snapshot \
    --db-cluster-snapshot-identifier sample-cluster-snapshot
```

对于 Windows：

```
aws docdb delete-db-cluster-snapshot ^
    --db-cluster-snapshot-identifier sample-cluster-snapshot
```

此操作的输出将列出您删除的集群快照的详细信息。

------