从集群快照还原 - 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. 登录到 Amazon Web Services Management Console 并打开 Amazon DocumentDB 控制台,网址:https://console.aws.amazon.com/docdb

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

    提示

    如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (Hamburger menu icon with three horizontal lines.)。

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

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

    1. 集群标识符 — 新集群的名称。您可以接受 Amazon DocumentDB 提供的名称或键入您喜欢的名称。提供的 Amazon DocumentDB 名称采用 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 (网络设置) 部分。

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

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

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

    2. 完成集群选项部分。

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

    3. 完成加密部分。

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

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

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

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

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

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

        • 输入一个密钥 ARN — 在 ARN 框中,输入 Amazon KMS 密钥的 Amazon 资源名称(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 (值) 框中,可以选择输入标签值。标签与 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 Web Services 账户的所有集群(跨 Amazon RDS、Neptune 和 Amazon DocumentDB)必须是唯一的。

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