從叢集快照還原 - Amazon DocumentDB

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

從叢集快照還原

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

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

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

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

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

注意

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

Using the AWS Management Console

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

  1. 登入 AWS Management Console,然後在 https://console.aws.amazon.com/docdb 開啟 Amazon DocumentDB 主控台。

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

    提示

    如果畫面左側沒有出現導覽窗格,請選擇頁面左上角的功能表圖示 (Hamburger menu icon with three horizontal lines.)。

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

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

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

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

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

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

    注意

    Amazon DocumentDB I/O 最佳化儲存組態僅適用於 Amazon DocumentDB 5.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 (加密) 區段。

      • 靜態加密:如果您的快照已加密,則無法使用這些選項。如果未加密,您可以選擇以下其中一項:

        • 若要加密叢集的所有資料,請選擇啟用 encryption-at-rest。如果您選擇此選項,則必須指定KMS金鑰。

        • 若要不加密叢集的資料,請選擇停用 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】 個字母、數字或連字號。

    • 第一個字元必須是字母。

    • 不能以連字號結尾或連續包含兩個連字號。

    • AWS 帳戶每個區域每 Amazon RDS、Neptune 和 Amazon DocumentDB 的所有叢集必須是唯一的。

  • --snapshot-identifier – 必要。用來還原的快照名稱。此名稱的快照必須存在且位於可用狀態。

  • --engine – 必要。必須為 docdb

  • --storage-type standard | iopt1 — 選用。預設:standard

  • --kms-key-id — 選用。從未加密ARN的快照還原時,還原加密快照或加密叢集時要使用的 AWS KMS 金鑰識別符的 。提供 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" } }