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

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

复制Amazon DocumentDB集群快照

在 中Amazon DocumentDB,您可以复制同一 AWS 区域中的手动和自动快照,或复制到同一账户中的其他 AWS 区域。您还可以在同一 AWS 区域中共享其他 AWS 账户拥有的快照。但是,您无法在单个步骤中跨 AWS 区域和 AWS 账户复制集群快照。必须单独执行这些操作。

作为对复制的替代,您也可与其他 AWS 账户共享手动快照。有关更多信息,请参阅共享 Amazon DocumentDB 集群快照

注意

Amazon DocumentDB 根据您保留的备份和快照数据量以及保留该数据的时间段向您计费。有关与Amazon DocumentDB备份和快照关联的存储的更多信息,请参阅 了解备份存储使用量。有关 Amazon DocumentDB 存储的定价信息,请参阅 Amazon DocumentDB 定价

复制共享快照

您可以复制其他 AWS 账户与您共享的快照。如果要复制从其他 AWS 账户共享的加密快照,您必须具有用于加密此快照的 AWS KMS 加密密钥的访问权限。

无论快照是否加密,您都只能在相同 AWS 区域中复制共享快照。有关更多信息,请参阅 处理加密

跨 AWS 区域复制快照

当您将快照复制到与源快照的 AWS 区域不同的 AWS 区域时,每个副本都是一个完整快照。完整快照副本包含还原Amazon DocumentDB集群所需的所有数据和元数据。

根据所涉及的 AWS 区域和要复制的数据量,可能需要数小时才能完成跨区域快照复制。有时,某一给定的源 AWS 区域可能会发出大量跨区域快照复制请求。在这种情况下,Amazon DocumentDB 可能会将来自该源 AWS 区域的新跨区域复制请求排入队列,直至某些区域正在进行的复制完成。当复制请求在队列中时,不显示有关这些复制请求的进度信息。复制开始后即显示进度信息。

限制

复制快照时,存在以下一些限制:

  • 如果您在目标快照可用之前删除了源快照,则快照复制将失败。在删除源快照之前,请确保目标快照的状态为 AVAILABLE

  • 每个账户最多可以同时进行到同一目标区域的五个快照复制请求。

  • 根据所涉及的区域和要复制的数据量,可能需要数小时才能完成跨区域快照复制。有关更多信息,请参阅跨 AWS 区域复制快照

处理加密

您可以复制已使用 AWS KMS 加密密钥加密的快照。如果您复制加密的快照,则此快照的副本也必须加密。如果您在相同 AWS 区域中复制加密快照,则可以使用与原始快照相同的AWS KMS加密密钥加密副本,也可以指定不同的AWS KMS加密密钥。如果您跨区域复制加密的快照,则无法对用于源快照的副本使用同一 KMS 加密密钥,因为AWS KMS密钥是特定于区域的。相反,您必须指定在目标 AWS 区域中有效的 AWS KMS 密钥。

源快照在复制过程中保持加密状态。有关更多信息,请参阅Amazon DocumentDB 中的数据保护

注意

对于Amazon DocumentDB集群快照,您在复制快照时无法加密未加密的集群快照。

参数组注意事项

当您跨区域复制快照时,副本不包含原始Amazon DocumentDB集群使用的参数组。在还原快照以创建新集群时,该集群将获取在其中创建快照的 AWS 区域的默认参数组。要为新集群提供与原始集群相同的参数,您必须执行以下操作:

  1. 在目标 AWS 区域中,创建具有与原始Amazon DocumentDB集群相同的设置的 集群参数组。如果新 AWS 区域中已存在选项组,也可以使用它。

  2. 在目标 AWS 区域中还原快照后,修改新Amazon DocumentDB集群并添加上一步中的新参数组或现有参数组。有关更多信息,请参阅修改 Amazon DocumentDB集群

复制集群快照

您可以使用 Amazon DocumentDB 或 复制 AWS 管理控制台 集群AWS CLI,如下所示。

要使用 创建集群快照的副本AWS 管理控制台,请完成以下步骤。此过程适用于在同一 AWS 区域或跨区域复制加密或未加密的集群快照。

  1. 通过以下网址登录 AWS 管理控制台并打开 Amazon DocumentDB 控制台:https://console.amazonaws.cn/docdb

  2. 在导航窗格中,选择 Snapshots (快照),然后选择要复制的快照左侧的按钮。

    提示

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

  3. Actions 菜单中,选择 Copy

  4. 在显示的 Make Copy of cluster snapshot 页面中,完成 Settings 部分。

    1. Destination Region (目标区域—) 可选。要将集群快照复制到其他 AWS 区域,请为目标区域选择该 AWS 区域

    2. New snapshot identifier (新快照标识符) — 输入新快照的名称。

      目标快照命名约束:

      • 不能是现有快照的名称。

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

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

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

      • 对于每个区域的每个 AWS 账户的所有集群(在 Amazon RDS、Neptune 和 Amazon DocumentDB中)必须是唯一的。

    3. Copy tags (复制标签) — 要将您在源快照上拥有的任何标签复制到快照副本,请选择 Copy tags (复制标签)

  5. 完成 Encryption-at-rest (静态加密) 部分。

    1. Encryption at rest (静态加密) — 如果您的快照已加密,则这些选项对您不适用,因为您无法从加密的快照创建未加密的副本。如果您的快照未加密,请选择以下选项之一:

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

      • 要让集群的数据不加密,请选择禁用静态加密。如果您选择此选项,您的快照的副本数据不会被加密,并且您已完成加密部分。

    2. Master key (主密钥) — 从下拉列表中选择以下选项之一:

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

      • <some-key-name> — 如果您创建了密钥,它将列出并可供您选择。

      • Enter a key ARN (输入一个密钥 ARN) — 在 ARN 框中,输入 AWS KMS 密钥的 Amazon 资源名称 (ARN)。ARN 的格式为 arn:aws:kms:<region>:<accountID>:key/<key-id>

  6. 要制作所选快照的副本,请选择 Copy snapshot (复制快照)。或者,您可以选择 Cancel (取消) 以不制作快照的副本。

要使用 创建未加密集群快照的副本AWS CLI,请使用带以下参数的 copy-db-cluster-snapshot 操作。如果要将快照复制到其他 AWS 区域,请在要复制快照到其中的 AWS 区域中运行该命令。

  • --source-db-cluster-snapshot-identifier — 必需。要制作副本的集群快照的标识符。集群快照必须存在并且处于可用 状态。如果要将快照复制到另一个 AWS 区域,则此标识符必须采用源 AWS 区域的 ARN 格式。此参数不区分大小写。

  • --target-db-cluster-snapshot-identifier — 必需。要从源集群快照创建的新集群快照标识符​。此参数不区分大小写。

    目标快照命名约束:

    • 不能是现有快照的名称。

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

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

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

    • 对于每个区域的每个 AWS 账户的所有集群(在 Amazon RDS、Neptune 和 Amazon DocumentDB中)必须是唯一的。

  • --source-region — 如果要将快照复制到另一个 AWS 区域,请指定将从中复制加密集群快照的 AWS 区域。

    如果您要将快照复制到其他 AWS 区域,并且未指定 --source-region,则必须指定 pre-signed-url 选项。值pre-signed-url必须是 URL,其中包含要在复制集群快照的源 AWS 区域中调用的 CopyDBClusterSnapshot 操作的签名版本 4 签名请求。要了解有关 的更多信息pre-signed-url,请参阅 CopyDBClusterSnapshot

  • --kms-key-id — 用于加密集群快照副本的密钥的 KMS 密钥标识符。

    如果要将加密的集群快照复制到另一个 AWS 区域,则此参数是必需的。您必须为目标 AWS 区域指定 KMS 密钥。

    如果要在同一 AWS 区域中复制加密的集群快照,则 KMS 密钥参数是可选的。集群快照的副本使用与源集群快照相同的 KMS 密钥进行加密。如果您要指定用于加密副本的新 KMS 加密密钥,可以使用此参数执行此操作。

  • --copy-tags — Optional. The tags and values to be copied over.

要取消正在进行的复制操作,您可以删除由 --target-db-cluster-snapshot-identifier 或 标识的目标集群快照TargetDBClusterSnapshotIdentifier,同时该集群快照处于复制状态。

示例 1:将未加密的快照复制到同一区域

以下AWS CLI示例在源快照所在的 AWS sample-cluster-snapshot 区域中创建sample-cluster-snapshot-copy名为 的 的副本。创建副本时,原始快照上的所有标签都将复制到快照副本。

对于 Linux、macOS 或 Unix:

aws docdb copy-db-cluster-snapshot \ --source-db-cluster-snapshot-identifier sample-cluster-snapshot \ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \ --copy-tags

对于 Windows:

aws docdb copy-db-cluster-snapshot ^ --source-db-cluster-snapshot-identifier sample-cluster-snapshot ^ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy ^ --copy-tags

此操作的输出将类似于下文。

{ "DBClusterSnapshot": { "AvailabilityZones": [ "us-east-1a", "us-east-1b", "us-east-1c" ], "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy", "DBClusterIdentifier": "sample-cluster", "SnapshotCreateTime": "2020-03-27T08:40:24.805Z", "Engine": "docdb", "Status": "copying", "Port": 0, "VpcId": "vpc-abcd0123", "ClusterCreateTime": "2020-01-10T22:13:38.261Z", "MasterUsername": "master-user", "EngineVersion": "4.0.0", "SnapshotType": "manual", "PercentProgress": 0, "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/sample-key-id", "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot-copy", "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot" } }

示例 2:跨 AWS 区域复制未加密的快照

以下AWS CLI示例创建具有 sample-cluster-snapshotARN 的 的副本arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot。此副本名为 sample-cluster-snapshot-copy ,并且位于运行命令的 AWS 区域中。

对于 Linux、macOS 或 Unix:

aws docdb copy-db-cluster-snapshot \ --source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot \ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy

对于 Windows:

aws docdb copy-db-cluster-snapshot ^ --source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:sample-cluster-snapshot ^ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy

此操作的输出将类似于下文。

{ "DBClusterSnapshot": { "AvailabilityZones": [ "us-east-1a", "us-east-1b", "us-east-1c" ], "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy", "DBClusterIdentifier": "sample-cluster", "SnapshotCreateTime": "2020-04-29T16:45:51.239Z", "Engine": "docdb", "AllocatedStorage": 0, "Status": "copying", "Port": 0, "VpcId": "vpc-abc0123", "ClusterCreateTime": "2020-04-28T16:43:00.294Z", "MasterUsername": "master-user", "EngineVersion": "4.0.0", "LicenseModel": "docdb", "SnapshotType": "manual", "PercentProgress": 0, "StorageEncrypted": false, "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot-copy", "SourceDBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot", } }

示例 3:跨 AWS 区域复制加密快照

以下AWS CLI示例创建sample-cluster-snapshot从 us-west-2 区域到 us-east-1 区域的 的副本。此命令在 us-east-1 区域中调用。

对于 Linux、macOS 或 Unix:

aws docdb copy-db-cluster-snapshot \ --source-db-cluster-snapshot-identifier arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot \ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy \ --source-region us-west-2 \ --kms-key-id sample-us-east-1-key

对于 Windows:

aws docdb copy-db-cluster-snapshot ^ --source-db-cluster-snapshot-identifier arn:aws:rds:us-west-2:123456789012:cluster-snapshot:sample-cluster-snapshot ^ --target-db-cluster-snapshot-identifier sample-cluster-snapshot-copy ^ --source-region us-west-2 ^ --kms-key-id sample-us-east-1-key

此操作的输出将类似于下文。

{ "DBClusterSnapshot": { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "sample-cluster-snapshot-copy", "DBClusterIdentifier": "ayhu-xrsc-test-ap-southeast-1-small-cluster-kms", "SnapshotCreateTime": "2020-04-29T16:45:53.159Z", "Engine": "docdb", "AllocatedStorage": 0, "Status": "copying", "Port": 0, "ClusterCreateTime": "2020-04-28T16:43:07.129Z", "MasterUsername": "chimera", "EngineVersion": "4.0.0", "LicenseModel": "docdb", "SnapshotType": "manual", "PercentProgress": 0, "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/sample-key-id", "DBClusterSnapshotArn": "arn:aws:rds:us-east-1:111122223333:cluster-snapshot:sample-cluster-snapshot-copy", "SourceDBClusterSnapshotArn": "arn:aws:rds:us-west-2:111122223333:cluster-snapshot:sample-cluster-snapshot", } }