从集群快照还原 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从集群快照还原

Amazon DocumentDB(与 MongoDB 兼容)能够创建存储卷的集群快照。可通过从集群快照还原来创建新集群。在还原集群时,您需提供用于还原的集群快照的名称以及还原创建的新集群的名称。您无法从快照还原到现有集群,因为还原时将新建一个新集群。

当从集群快照还原集群时:

  • 此操作仅还原集群,而不还原集群的实例。您必须调用 create-db-instance 操作为还原的集群创建实例,并在 --db-cluster-identifier 中指定还原的集群的标识符。您只能在集群可用 后才能创建实例。

  • 您无法将加密快照还原到未加密集群。但是,您可以通过指定 Amazon KMS 密钥将未加密快照还原到加密集群。

  • 要从加密快照还原集群,您必须有权访问 Amazon KMS 密钥。

注意

您无法将 3.6 集群还原到 4.0 集群,但可以从一个群集版本迁移到另一个群集版本。有关更多信息,请转至 迁Amazon DocumentDB

使用 Amazon Web Services Management Console 从集群快照进行还原

以下过程说明如何使用 Amazon DocumentDB 管理控制台从集群快照还原 Amazon DocumentDB 集群。

  1. 登录到Amazon Web Services Management Console,然后在以下位置打开 Amazon DocumentDB 控制台https://console.aws.amazon.com/docdb.

  2. 在导航窗格中,选择快照,然后选择要用于还原集群的快照左侧的按钮。

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 ()。

  3. Actions (操作) 菜单上,选择 Restore (还原)

  4. 还原快照页面上,填写配置部分。

    1. ​集群标识​符— 新集群的名称。您可以接受 Amazon DocumentDB 提供的名称或键入您喜欢的名称。Amazon DocumentDB 提供的名称格式为docdb-加上 UTC 时间戳;例如,docdb-yyyy-mm-dd-hh-mm-ss.

    2. 实例类— 新集群的实例类。您可以接受默认实例类或从下拉列表中选择实例类。

    3. 实例的数量— 您希望使用此集群创建的实例的数量。您可以接受默认 3 个实例(1 个读/写主实例和 2 个只读副本),或从下拉列表中选择实例数。

  5. 如果您对集群配置满意,请选择 Restore cluster (还原集群) 并等待集群还原。

  6. 如果您更希望更改某些配置(如指定非默认 Amazon VPC 或安全组),请选择显示高级设置从页面左下角开始,然后继续执行以下步骤。

    1. 完成 Network settings (网络设置) 部分。

      • Virtual Private Cloud (VPC)— 接受当前 VPC,或者从下拉列表中选择一个 VPC。

      • 子网组— 接受default子网组,或者从下拉列表中选择一个。

      • VPC 安全组— 接受default (VPC)安全组,或者从列表中选择一个。

    2. 完成集群选项部分。

      • 数据库端口— 接受默认端口,27017或者使用向上或向下箭头来设置要用于应用程序连接的端口。

    3. 完成加密部分。

      • 静态加密— 如果您的快照已加密,那么这些选项对您不可用。如果它未加密,您可以选择以下选项之一:

        • 要加密所有集群的数据,请选择启用静态加密。如果您选择此选项,则必须指定一个主密钥

        • 要让集群的数据不加密,请选择禁用静态加密。如果您选择此选项,您便已完成加密部分。

      • 主密钥— 从下拉列表中选择以下选项之一:

        • (默认)aws/rds— 账号和Amazon KMS此选项的后面列出密钥 ID。

        • 客户管理的密钥— 此选项仅当您在中创建了 IAM 加密密钥后可用。Amazon Identity and Access Management(IAM) 控制台。您可以选择该密钥来加密集群。

        • 输入键 ARN— 在进行筛选框中,输入您的 Amazon 资源名称 (ARN)Amazon KMS键。ARN 的格式为 arn:aws:kms:<region>:<accountID>:key/<key-id>

    4. 完成 Log exports (日志导出) 部分。

      • 选择要发布到 CloudWatch 的日志类型— 选择下列项之一:

        • Enabled (已启用)— 使您的集群能够将 DDL 日志记录导出到 Amazon CloudWatch Logs。

        • Disabled— 阻止您的集群将 DDL 日志导出到 Amazon CloudWatch Logs。Disabled (已禁用) 为默认值。

      • IAM 角色— 从列表中,选择RDS 服务相关角色.

    5. 完成 Tags (标签) 部分。

      • 添加标签— 在密钥框中,输入集群标签的名称。在 Value (值) 框中,可以选择输入标签值。标签用于Amazon Identity and Access Management(IAM) 策略来管理对 Amazon DocumentDB 资源的访问并控制可将什么操作应用于资源。

    6. 完成 Deletion protection (删除保护) 部分。

      • 启用删除保护— 防止意外删除集群。启用该选项后,您将无法删除集群。

  7. 选择 Restore cluster (还原集群)

使用 Amazon CLI 从集群快照进行还原

要使用 Amazon CLI 从快照还原集群,请使用带以下参数的 restore-db-cluster-from-snapshot 操作。有关更多信息,请参阅RestoreDBClusterFromSnapshot

  • --db-cluster-identifier – 必需。操作创建的集群的名称。在执行此操作之前,不能存在此名称的集群。

    集群命名约束:

    • 长度为 [1-63] 个字母、数字或连字符。

    • 第一个字符必须是字母。

    • 不能以连字符结束或包含两个连续连字符。

    • 对于每个 Amazon DocumentDB 的每个 Amazon Neptune 和 Amazon DocumentDB 的所有集群(必须是唯一的)Amazon Web Services 账户每区域数。

  • --snapshot-identifier – 必需。用于自其还原的快照的名称。具有此名称的快照必须存在并且处于可用 状态。

  • --engine – 必需。必须是 docdb

  • --kms-key-id— 可选。在还原已加密快照或在从未加密快照还原的同时加密集群时,要使用的 Amazon KMS 密钥标识符的 ARN。如果提供 Amazon KMS 密钥 ID,则会导致使用 Amazon KMS 密钥加密还原的集群(无论快照是否加密)。

    --kms-key-id 的格式为 arn:aws:kms:<region>:<accountID>:key/<key-id>。如果不为 --kms-key-id 参数指定值,则会出现以下情况:

    • 如果 --snapshot-identifier 中的快照已加密,将使用用于加密快照的同一 Amazon 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" } }