View a markdown version of this page

從叢集快照還原 - Amazon DocumentDB

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

從叢集快照還原

Amazon DocumentDB (與 MongoDB 相容) 會建立儲存磁碟區的叢集快照。您可以藉由從叢集快照進行還原來建立新叢集。還原叢集時,您需提供做為還原來源的叢集快照名稱,以及該還原所建立的新叢集名稱。您無法從快照還原到現有叢集,因為新叢集會在您還原時建立。

當您從叢集快照還原叢集時:

  • 這個動作只會還原叢集,而不會還原該叢集的執行個體。您必須呼叫 create-db-instance 動作,為還原的叢集建立執行個體,並且在 --db-cluster-identifier 中指定所還原叢集的識別碼。只有當叢集可用時,才可以建立執行個體。

  • 您無法將已加密的快照還原至未加密的叢集。不過,您可以透過指定 AWS KMS 金鑰,將未加密的快照還原至加密的叢集。

  • 若要從加密快照還原叢集,您必須擁有 AWS KMS 金鑰的存取權。

注意

您無法將 3.6 叢集還原至 4.0 叢集,但可以從一個叢集版本遷移至另一個叢集版本。如需詳細資訊,請前往 遷移至 Amazon DocumentDB

Using the AWS 管理主控台

下列程序說明如何使用 Amazon DocumentDB 管理主控台從叢集快照還原 Amazon DocumentDB 叢集。

  1. 登入 AWS 管理主控台,並在 https://https://console.aws.amazon.com/docdb 開啟 Amazon DocumentDB 主控台。

  2. 在導覽窗格中,選擇 Snapshots (快照),找到您要用於還原至叢集的快照,並選擇其左側的按鈕。

    提示

    如果畫面左側沒有出現導覽窗格,請選擇頁面左上角的功能表圖示 (Menu button.)。

  3. 操作功能表上,選擇 Restore (還原)

  4. Restore snapshot (還原快照) 頁面,完成 Configuration (組態設定) 區段。

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

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

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

  5. 針對叢集儲存組態,選擇儲存選項。

    注意

    Amazon DocumentDB I/O 最佳化儲存組態僅適用於 Amazon DocumentDB 5.0 和 8.0 引擎版本。

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

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

    1. 完成 Network settings (網路設定) 區段。

      • Virtual Private Cloud (VPC) — 接受目前的 VPC,或從下拉式清單中選擇 VPC。

      • 子網路群組 — 接受default子網路群組,或從下拉式清單中選擇一個。

      • VPC 安全群組 — 接受default (VPC)安全群組,或從清單中選擇一個安全群組。

    2. 填寫 Cluster options (叢集選項) 區段。

      • 資料庫連接埠 — 接受預設連接埠 27017或使用向上或向下箭頭來設定您要用於應用程式連線的連接埠。

    3. 填寫 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>

    4. 完成 Log exports (日誌匯出) 區段。

      • 選取要發佈至 CloudWatch 的日誌類型 — 選擇下列其中一項:

        • 已啟用 — 讓您的叢集將 DDL 記錄匯出至 Amazon CloudWatch Logs。

        • 停用 — 防止您的叢集將 DDL 日誌匯出至 Amazon CloudWatch Logs。Disabled (已停用) 是預設值。

      • IAM 角色 - 從清單中選擇 RDS 服務連結角色

    5. 完成 Tags (標籤) 區段。

      • 新增標籤 — 在金鑰方塊中,輸入叢集的標籤名稱。在 Value (值) 方塊中,選擇性地輸入標籤值。標籤會與 AWS Identity and Access Management (IAM) 政策搭配使用,以管理對 Amazon DocumentDB 資源的存取,並控制可套用至資源的動作。

    6. 完成 Deletion protection (刪除保護) 區段。

      • 啟用刪除保護 — 保護叢集免於意外刪除。啟用此選項後,您無法刪除叢集。

  8. 選擇 Restore cluster (還原叢集)

Using the AWS CLI

若要使用 從快照還原叢集 AWS CLI,請使用 restore-db-cluster-from-snapshot操作搭配下列參數。如需詳細資訊,請參閱RestoreDBClusterFromSnapshot

  • --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" } }