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

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

从集群快照还原

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

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

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

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

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

注意

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

Using the Amazon Web Services Management Console

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

  1. 登录并打开亚马逊 DocumentDB 控制台,网址为 https://console.aws.amazon.com/docdb。 Amazon Web Services Management Console

  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. 对于集群存储配置,请选择存储选项。

    注意

    亚马逊 DocumentDB I/O 优化的存储配置仅适用于亚马逊 DocumentDB 5.0 引擎版本。

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

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

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

      • 虚拟私有云(VPC)— 接受当前 VPC,或者从下拉列表中选择一个 VPC。

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

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

    2. 完成集群选项部分。

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

    3. 完成加密部分。

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

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

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

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

        • (默认)aws/r ds — 账号和 Amazon KMS 密钥 ID 列在此选项后面。

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

        • 输入密钥 ARN — 在 ARN 框中,输入密钥的亚马逊资源名称 (ARN)。 Amazon 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 (值) 框中,可以选择输入标签值。标签与 Amazon Identity and Access Management (IAM) 策略一起使用,用于管理对 Amazon DocumentDB 资源的访问权限并控制可以对资源应用哪些操作。

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

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

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

Using the Amazon CLI

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

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

    集群命名约束:

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

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

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

    • 每个区域的 Amazon RDS、Neptune 和 Amazon DocumentDB 中的所有集群都必须是唯一 Amazon Web Services 账户的。

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

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

  • --storage-type standard | iopt1 – 可选。默认值:standard

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