

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

# 從叢集快照還原
<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 管理主控台，並在 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb) 開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇 **Snapshots (快照)**，找到您要用於還原至叢集的快照，並選擇其左側的按鈕。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![Menu button.](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

1. 在**操作**功能表上，選擇 **Restore (還原)**。

1. 在 **Restore snapshot (還原快照)** 頁面，完成 **Configuration (組態設定)** 區段。

   1. **叢集識別符** — 新叢集的名稱。您可以接受 Amazon DocumentDB 提供的名稱，或輸入您偏好的名稱。Amazon DocumentDBsupplied的名稱格式為 `docdb-`加上 UTC 時間戳記；例如 `docdb-yyyy-mm-dd-hh-mm-ss`。

   1. **執行個體類別** — 新叢集的執行個體類別。您可以接受預設執行個體類別，或從下拉式清單中選擇執行個體類別。

   1. **執行個體數量** — 您希望使用此叢集建立的執行個體數量。您可以接受預設的 3 個執行個體 (1 個主要讀取/寫入和 2 個唯讀複本)，或從下拉式清單中選擇執行個體數目。

1. 針對**叢集儲存組態**，選擇儲存選項。
**注意**  
**Amazon DocumentDB I/O 最佳化**儲存組態僅適用於 Amazon DocumentDB 5.0 和 8.0 引擎版本。

1. 如果您滿意此叢集組態，請選擇 **Restore cluster (還原叢集)**，等待叢集還原。

1. 如果您想要變更某些組態，例如指定非預設的 Amazon VPC 或安全群組，請選擇從頁面左下角**顯示進階設定**，然後繼續執行下列步驟。

   1. 完成 **Network settings (網路設定)** 區段。
      + **Virtual Private Cloud (VPC)** — 接受目前的 VPC，或從下拉式清單中選擇 VPC。
      + **子網路群組** — 接受`default`子網路群組，或從下拉式清單中選擇一個。
      + **VPC 安全群組** — 接受`default (VPC)`安全群組，或從清單中選擇一個安全群組。

   1. 填寫 **Cluster options (叢集選項)** 區段。
      + **資料庫連接埠** — 接受預設連接埠 `27017`或使用向上或向下箭頭來設定您要用於應用程式連線的連接埠。

   1. 填寫 **Encryption (加密)** 區段。
      + **靜態加密** — 如果您的快照已加密，則無法使用這些選項。如果未加密，您可以選擇以下其中一項：
        + 若要加密所有叢集的資料，請選擇 **Enable encryption-at-rest (啟用靜態加密)**。如果您選擇此選項，則必須指定 KMS 金鑰。
        + 若不加密叢集的資料，請選擇 **Disable encryption-at-rest (停用靜態加密)**。如果選擇此選項，您會在加密區段完成。
      + **AWS KMS 金鑰** — 從下拉式清單中選擇下列其中一項：
        + **（預設） aws/rds** — 帳戶號碼和 AWS KMS 金鑰 ID 會列在此選項後面。
        + **客戶受管金鑰** — 只有在您在 AWS Identity and Access Management (IAM) 主控台中建立 IAM 加密金鑰時，才能使用此選項。您可以選擇金鑰加密您的叢集。
        + **輸入金鑰 ARN** — 在 **ARN** 方塊中，輸入 AWS KMS 金鑰的 Amazon Resource Name (ARN)。ARN 的格式是 `arn:aws:kms:<region>:<accountID>:key/<key-id>`。

   1. 完成 **Log exports (日誌匯出)** 區段。
      + **選取要發佈至 CloudWatch 的日誌類型** — 選擇下列其中一項：
        + **已啟用** — 讓您的叢集將 DDL 記錄匯出至 Amazon CloudWatch Logs。
        + **停用** — 防止您的叢集將 DDL 日誌匯出至 Amazon CloudWatch Logs。**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 \| 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"
    }
}
```

------