

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 遷移至 Amazon DocumentDB 無伺服器
<a name="docdb-serverless-migrating"></a>

**Topics**
+ [將現有的 DocumentDB 叢集遷移至無伺服器](#w2aac41c19b5)
+ [從 MongoDB 遷移至 DocumentDB 無伺服器](#w2aac41c19b7)

## 將現有的 DocumentDB 叢集遷移至無伺服器
<a name="w2aac41c19b5"></a>

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

如果您的佈建叢集執行的是不支援 DocumentDB Serverless 的較低引擎版本，您必須先將叢集升級至支援的引擎版本。如需詳細資訊，請參閱[Amazon DocumentDB 就地主要版本升級](docdb-mvu.md)。

### 將佈建叢集遷移至 DocumentDB 無伺服器
<a name="docdb-serverless-migrate-cluster"></a>

若要切換佈建叢集以使用 DocumentDB 無伺服器，請遵循下列步驟：

1. 檢查佈建叢集的引擎版本是否需要升級，才能與 DocumentDB Serverless 搭配使用。請參閱 [DocumentDB 無伺服器的需求和限制](docdb-serverless-limitations.md)。
**注意**  
如果佈建叢集執行的引擎版本不適用於 DocumentDB Serverless，請升級叢集的引擎版本。請參閱 [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 無伺服器需求和限制[DocumentDB 無伺服器的需求和限制](docdb-serverless-limitations.md)。

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_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   **叢集**資料表隨即出現。

1. 在**叢集**表格中，選取您要新增無伺服器執行個體之叢集的核取方塊。

1. 選擇 **Actions (動作)**，然後選擇 **Add instances (新增執行個體)**。

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`，一個寫入器執行個體和一個讀取器執行個體。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊或組態參數。

使用 `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-2`會新增名為 `sample-serverless-instance-1`和 的新無伺服器執行個體：

```
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)。