

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

# 迁移到 Amazon DocumentDB 无服务器
<a name="docdb-serverless-migrating"></a>

**Topics**
+ [将现有的 DocumentDB 集群迁移到无服务器](#w2aac41c19b5)
+ [从 MongoDB 迁移到 DocumentDB 无服务器](#w2aac41c19b7)

## 将现有的 DocumentDB 集群迁移到无服务器
<a name="w2aac41c19b5"></a>

### 升级集群的引擎版本
<a name="w2aac41c19b5b3"></a>

如果您的预置集群运行的是不支持 DocumentDB 无服务器的较低引擎版本，则需要先将集群升级到支持的引擎版本。有关更多信息，请参阅 [Amazon DocumentDB 主版本就地升级](docdb-mvu.md)。

### 将预置集群迁移到 DocumentDB 无服务器
<a name="docdb-serverless-migrate-cluster"></a>

要将预置集群切换为使用 DocumentDB 无服务器，请按照以下步骤操作：

1. 检查是否需要升级预置集群的引擎版本以与 DocumentDB 无服务器配合使用。请参阅[DocumentDB 无服务器的要求和限制](docdb-serverless-limitations.md)。
**注意**  
如果预置集群运行的是不适用于 DocumentDB 无服务器的引擎版本，则升级集群的引擎版本。请参阅[Amazon DocumentDB 主版本就地升级](docdb-mvu.md)。

1. 配置集群的扩缩配置。有关选择扩缩配置的详细信息，请参阅 [为 DocumentDB 无服务器集群选择扩缩容量范围](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。要修改集群的扩缩配置，请参阅 [查看和修改集群的扩缩容量范围配置](docdb-serverless-managing.md#docdb-serverless-range-config)。

1. 配置任何其他集群属性以满足 [DocumentDB 无服务器的要求和限制](docdb-serverless-limitations.md) 中的 DocumentDB 无服务器要求和限制。

1. 将一个或多个 DocumentDB 无服务器实例添加到该集群。按照[添加 Amazon DocumentDB 无服务器实例](docdb-serverless-create-cluster.md#docdb-serverless-adding-instance)中的程序操作。
**注意**  
在某些情况下，您的集群中可能已经拥有一个或多个预置读取器实例。如果已经拥有，您可以选择将其中一个读取器转换为 DocumentDB 无服务器实例，而不是创建新的实例。为此，请按照[更改实例的类](db-instance-classes.md#db-instance-class-changing)中的过程操作

1. （可选）执行失效转移操作，以使 DocumentDB 无服务器实例成为集群写入器。请参阅[Amazon DocumentDB 失效转移](failover.md)。

1. （可选）将任何剩余的预置 Amazon DocumentDB 实例转换为 DocumentDB 无服务器实例（请参阅 [更改实例的类](db-instance-classes.md#db-instance-class-changing)），或者将其从集群中移除（请参阅 [删除 Amazon DocumentDB 实例](db-instance-delete.md)）。

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

以下 AWS 管理控制台 配置示例显示了使用运行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 预配置集群的迁移过程，该集群不需要升级引擎版本即可开始使用 DocumentDB 无服务器。集群名为 `sample`，从名为 `sample`、`sample2` 和 `sample3` 的三个预置实例开始。在此示例中，将这三个实例替换为三个无服务器实例。

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/docdb/home?region=us-east-1) 并打开 Amazon DocumentDB 控制台。

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. 选择 **Actions (操作)**，然后选择 **Add instance (添加实例)**。

1. 在**添加实例**对话框中，为要创建的每个新无服务器实例选择**数据库实例类**部分中的**无服务器**。

1. 对于**无服务器容量设置**，根据对话框中的容量描述设置扩缩配置。

1. （可选）要添加其他实例，请选择**添加实例**。继续添加实例，直至达到所需的新实例数量。

   在此示例中，创建了三个新无服务器实例。

1. 选择**创建**。

   创建实例需要几分钟时间。您可以使用控制台或 AWS CLI 查看实例的状态。有关更多信息，请参阅[监控 Amazon DocumentDB 集群的状态](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)。

1. 返回至**集群**表，选中所有三个原始预置实例的复选框。

1. 选择**操作**，然后选择**删除**。

在删除过程中，将自动执行失效转移，以将剩余的实例之一提升为写入器。数分钟后删除过程完成。现有集群现在包含三个 DocumentDB 无服务器实例（如**大小**列中所定义）。

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

以下 AWS CLI 配置示例显示了使用运行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 预配置集群的迁移过程，该集群不需要升级引擎版本即可开始使用 DocumentDB 无服务器。集群名为 `sample`，从名为 `sample`、`sample2` 和 `sample3` 的三个预置实例开始。在此示例中，将这三个实例替换为三个无服务器实例。集群名为 `sample-cluster`，从名为 `sample-provisioned-instance-1` 和 `sample-provisioned-instance-2` 的两个预置实例（一个写入器实例和一个读取器实例）开始。

在以下示例中，*user input placeholder*使用您自己的信息或配置参数替换每个示例。

使用 `aws docdb describe-db-clusters` 操作确定集群的状态。以下代码将查找集群 `sample-cluster` 的状态并以表格形式输出结果：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

添加集群的扩缩配置：

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
```

添加无服务器实例。在此示例中，添加了名为 `sample-serverless-instance-1` 和 `sample-serverless-instance-2` 的新无服务器实例：

```
aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-1 \
    --db-instance-class db.serverless \
    --engine docdb

aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-2 \
    --db-instance-class db.serverless \
    --engine docdb
```

输入以下内容，等待无服务器实例可用后再继续：

```
aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-1

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-2
```

执行失效转移以使新的 `sample-serverless-instance-1` 实例成为集群写入器。

```
aws docdb failover-db-cluster \
    --db-cluster-identifier sample-cluster \
    --target-db-instance-identifier sample-serverless-instance-1
```

故障转移需要几秒钟才能完成，之后 sample-serverless-instance -1 成为集群写入器。使用以下输入来验证这一点：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

最后，删除原始的预置实例：

```
aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-1

aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-2
```

------

## 从 MongoDB 迁移到 DocumentDB 无服务器
<a name="w2aac41c19b7"></a>

您可以将 MongoDB 数据库迁移到 DocumentDB 无服务器，就像使用预置 Amazon DocumentDB 一样。有关更多信息，请参阅 [迁移到 Amazon DocumentDB](docdb-migration.md)。