從叢集快照還原 - 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 (快照),找到您要用於還原至叢集的快照,並選擇其左側的按鈕。

    提示

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

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

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

    1. 叢集識別碼 — 新叢集的名稱。您可以接受 Amazon DocumentDB 提供的名稱或鍵入您喜歡的名稱。Amazon 文件資料庫提供的名稱格式為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 (網路設定) 區段。

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

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

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

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

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

    3. 填寫 Encryption (加密) 區段。

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

        • 若要加密叢集的所有資料,請選擇 [啟用] encryption-at-rest。如果選擇此選項,您必須指定 Master key (主要金鑰)

        • 若要不加密叢集的資料,請選擇 [停用] encryption-at-rest。如果選擇此選項,您會在加密區段完成。

      • 主金鑰 — 從下拉式清單中選擇下列其中一項:

        • (預設值) aws/rds — 帳號和 AWS KMS 金鑰識別碼會列在此選項之後。

        • 客戶管理金鑰 — 只有在您在 AWS Identity and Access Management (IAM) 主控台中建立 IAM 加密金鑰時,才能使用此選項。您可以選擇金鑰加密您的叢集。

        • 輸入金鑰 ARN — 在 ARN 方塊中,輸入金鑰的 Amazon 資源名稱 (ARN)。 AWS KMS ARN 的格式是 arn:aws:kms:<region>:<accountID>:key/<key-id>

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

      • 取要發佈至的防護記錄類型 CloudWatch — 選擇下列其中一項:

        • 啟用 — 可讓您的叢集將 DDL 日誌記錄匯出至 Amazon CloudWatch 日誌。

        • 停用 — 防止叢集將 DDL 日誌匯出至 Amazon CloudWatch 日誌。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 金鑰識別碼會導致還原的叢集使用 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" } }