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

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

克隆 Amazon DocumentDB 集群卷

使用 Amazon DocumentDB 克隆功能,您可以创建一个新集群,该集群使用相同的 Amazon DocumentDB 集群卷并具有与原始集群卷相同的数据。该过程旨在快速且经济高效。我们将新集群及其关联的数据卷称为克隆。与使用其他技术(如还原快照)实际复制数据相比,创建克隆速度更快且空间利用效率更高。

Amazon DocumentDB B 支持从已配置的Amazon DocumentDB B 集群创建Amazon DocumentDB B 预配置的克隆。使用与源不同的部署配置创建克隆时,源的 Amazon DocumentDB 引擎的最新版本将被用于创建克隆。

当您从 Amazon DocumentDB 集群创建克隆时,将在您的Amazon账户-拥有源 Amazon DocumentDB 集群的同一个账户。

Amazon DocumentDB 克隆

Amazon DocumentDB 使用copy-on-write protocol创建克隆。此机制占用最少的额外空间来创建初始克隆。首次创建克隆时,Amazon DocumentDB 将保留源数据库集群和新(克隆的)Amazon DocumentDB 集群使用的数据的单个副本。只有当源 Amazon DocumentDB 集群或 Amazon DocumentDB 集群克隆对数据(在 Amazon DocumentDB 存储卷上)进行更改时,才会分配额外的存储空间。了解相关更多信息 copy-on-write 协议,请参阅Amazon DocumentDB B 克隆的工作原理.

Amazon DocumentDB 克隆非常适合使用您的生产数据快速设置测试环境,且不会有损坏数据的风险。您可以将克隆用于多种类型的应用程序,例如:

  • 对潜在的变化(例如模式变化和参数组变化)进行试验,以评估所有影响。

  • 执行工作负载密集型操作,例如导出数据或在克隆上运行分析查询。

  • 为开发、测试或其他用途创建生产数据库集群的副本。

您可以从同一个 Amazon DocumentDB 集群创建多个克隆。您还可以从另一个克隆创建多个克隆。

创建 Amazon DocumentDB 克隆后,您可以以不同于源 Amazon DocumentDB 集群的方式配置 Amazon DocumentDB 实例。例如,您可能不需要用于开发目的的克隆来满足与源生产 Amazon DocumentDB 集群相同的高可用性要求。在这种情况下,您可以使用单个 Amazon DocumentDB 实例来配置克隆,而不是使用 Amazon DocumentDB 集群使用的多个数据库实例。

当克隆完成测试、开发等使用目的时,您可以将其删除。

Amazon DocumentDB B 克隆的限制

Amazon DocumentDB; 克隆具有以下限制:

  • 您可以根据需要创建任意数量的克隆,最多为 Amazon Web Services 区域中允许的最大数据库集群数。但是,在创建 15 个克隆后,下一个克隆是完整副本。克隆操作的作用类似于 point-in-time恢复。

  • 您不能在其他版本中创建克隆Amazon来自源 Amazon DocumentDB 集群的区域。

  • 您无法从没有数据库实例的 Amazon DocumentDB 集群创建克隆。您只能克隆具有至少一个数据库实例的 Amazon DocumentDB 集群。

  • 您可以在与 Amazon DocumentDB 集群不同的 Virtual Private Cloud (VPC) 中创建克隆。不过,这些 VPC 的子网必须映射到相同的可用区。

Amazon DocumentDB B 克隆的工作原理

Amazon DocumentDB 克隆运行于 Amazon DocumentDB 集群的存储层。它使用copy-on-write该协议在支持 Amazon DocumentDB 存储卷的底层持久介质方面既快速又节省空间。有关 Amazon DocumentDB 集群卷的更多信息管理Amazon DocumentDB.

了解 copy-on-write protocol

Amazon DocumentDB 集群将数据存储在底层 Amazon DocumentDB 存储卷中的页面中。

例如,在下图中,您可以找到拥有四个数据页(1、2、3 和 4)的 Amazon DocumentDB 集群(A)。假设从 Amazon DocumentDB 集群创建了一个克隆 B。创建克隆时,未复制任何数据。相反,克隆指向与源 Amazon DocumentDB 集群相同的页面集。


                  Amazon DocumentDB 集群卷包含 4 个页面,适用于源集群 A 和克隆 B

创建克隆时,通常不需要额外的存储空间。这些区域有: copy-on-write 协议在物理存储介质上使用与源段相同的数据段。只有当源段的容量不足以容纳整个克隆段时,才需要额外的存储空间。如果是这种情况,源段将被复制到另一个物理设备。

在下图中,您可以找到 copy-on-write 使用相同集群 A 及其克隆 B 的协议,如前所示。如果您对 Amazon DocumentDB 集群(A)进行更改,那么第 1 页上保存的数据也将随之而发生改变。Amazon DocumentDB 没有写入原始页面 1,而是创建了一个新页面 1 [A]。集群(A)的 Amazon DocumentDB 集群卷现在指向页面 1 [A]、2、3 和 4,而克隆(B)仍引用原始页面。


                  Amazon DocumentDB 源数据库集群卷及其克隆,均已更改。

在克隆上,对存储卷的第 4 页进行了更改。Amazon DocumentDB 没有写入原始页面 4,而是创建了一个新页面 4 [B]。克隆现在指向页面 1、2、3 和页面 4[B],而集群(A)继续指向 1[A]、2、3 和 4。


                  Amazon DocumentDB 源数据库集群卷及其克隆,均已更改。

随着时间推移,当源 Amazon DocumentDB 集群卷和克隆上出现了更多更改时,因此需要更多存储空间来捕获和存储更改。

删除源集群卷

删除与一个或多个克隆关联的源集群卷时,克隆不会受到影响。克隆继续指向以前由源集群卷拥有的页面。

创建Amazon DocumentDB 克隆

你可以在相同的 clone 中创建克隆Amazon账户作为源 Amazon DocumentDB 集群。为此,您可以使用 Amazon Web Services Management Console 或 Amazon CLI 并按照以下步骤进行操作。

通过使用Amazon DocumentDB B 克隆,您可以从预配置的 Amazon DocumentDB 集群中创建预配置的 Amazon DocumentDB 集群克隆

以下过程介绍了如何使用克隆 Amazon DocumentDB 集群Amazon Web Services Management Console.

使用创建克隆Amazon Web Services Management Console生成一个包含一个 Amazon DocumentDB 实例的Amazon DocumentDB B 集群。

这些说明适用于创建克隆的同一 Amazon 账户所拥有的数据库集群。数据库集群必须由同一数据库集群拥有AmazonAmazon DocumentDB B 不支持跨账户克隆账户。

使用 Amazon 创建 Amazon Web Services Management Console 账户拥有的数据库集群的克隆

  1. 登录Amazon Web Services Management Console,然后打开Amazon DocumentDB B 控制台https://console.aws.amazon.com/docdb.

  2. 在导航窗格中,选择 Clusters

  3. 从列表中选择您的 Amazon DocumentDB 集群,操作,选择创建克隆.

    
                           创建克隆首先需要选择您的 Amazon DocumentDB 集群。

    创建克隆页面打开,您可以在其中配置集群标识符还有一个实例类,以及Amazon DocumentDB B 集群克隆的其他选项。

  4. 设置部分,执行以下操作:

    1. 对于集群标识符,输入您要为克隆的 Amazon DocumentDB 集群拟定的名称。

    2. 对于实例配置,请选择合适的实例类用于您克隆的Amazon DocumentDB B 集群。

      
                              创建克隆首先需要选择 Amazon DocumentDB 集群并指定数据库实例的大小。
    3. 对于网络设置,请选择一个子网组用于您的用例和关联的 VPC 安全组。

    4. 对于南美洲ncryption-at-rest,如果源群集(正在克隆的群集)已启用加密,则克隆的群集也必须启用加密。如果这种情况是真的,那么启用加密选项显示为灰色(已禁用),但是启用加密已选择选项。相反,如果源集群未启用加密,则启用加密选项可用,您可以选择启用或禁用加密。

      
                                 为您的 Amazon DocumentDB 集群克隆指定网络和加密设置。
    5. 完成新的群集克隆配置,方法是选择要导出的日志类型(可选),输入用于连接群集的特定端口,并启用防止意外删除群集的保护(默认情况下处于启用状态)。

      
                                 通过选择要导出的日志类型、用于连接群集的特定端口以及意外删除群集的保护表单来完成新的克隆配置。
    6. 完成 Amazon DocumentDB 集群克隆的所有设置。要了解有关 Amazon DocumentDB 集群和实例设置的更多信息,请参阅管理Amazon DocumentDB.

  5. 选择创建克隆启动您选择的Amazon DocumentDB B 集群的Amazon DocumentDB B 克隆。

克隆创建完成后,它将与您的其他 Amazon DocumentDB 集群一起列在控制台中数据库部分并显示其当前状态。当其状态为可用时,您的克隆即可以使用。

使用Amazon CLI克隆您的 Amazon DocumentDB 集群需要执行几个步骤。

这些区域有:restore-db-cluster-to-point-in-time Amazon CLI你使用的命令会导致一个空的 Amazon DocumentDB 集群中有 0 个 Amazon DocumentDB 实例。也就是说,此命令仅还原 Amazon DocumentDB 集群,而不还原该集群的数据库实例。在克隆可用之后,您可以单独执行此操作。该过程的两个步骤如下:

  1. 使用创建克隆restore-db-cluster-to-point-in-timeCLI 命令。与此命令一起使用的参数控制正在创建的空 Amazon DocumentDB 集群(克隆)的容量类型和其他详细信息。

  2. 使用以下命令为克隆创建 Amazon DocumentDB 实例create-db-instanceCLI 命令用于在恢复的Amazon DocumentDB B 集群中重新创建 Amazon DocumentDB 实例

以下命令假定 Amazon CLI 和您的Amazon区域被设置为默认值。这种方法使您无需在每个命令中传递 --region 名称。有关更多信息,请参阅配置 Amazon CLI。您还可以在后面的每个 CLI 命令中指定 --region

创建克隆

您传递给 restore-db-cluster-to-point-in-time CLI 命令的特定参数会有所不同。您传递的内容取决于您要创建的克隆类型。

使用以下步骤从预配置的 Amazon DocumentDB 集群中创建预配置的 Amazon DocumentDB 克隆。

创建与源 Amazon DocumentDB 集群引擎模式相同的克隆

  • 使用 restore-db-cluster-to-point-in-time CLI 命令并指定以下参数的值:

    • --db-cluster-identifier – 为克隆选择一个有意义的名称。当您使用克隆时,可以为克隆命名restore-db-cluster-to-point-in-timeCLI 命令。

    • --restore-type – 使用 copy-on-write 创建源数据库集群的克隆。如果没有这个参数,restore-db-cluster-to-point-in-time恢复 Amazon DocumentDB 集群,而不是创建克隆。默认为restore-typefull-copy.

    • --source-db-cluster-identifier— 使用要克隆的源 Amazon DocumentDB 集群的名称。

    • --use-latest-restorable-time – 此值指向克隆的最新可还原卷数据。此参数是必需的restore-type copy-on-write,但是,你不能使用restore-to-time parameter用它。

以下示例从名为 my-source-cluster 的集群创建一个名为 my-clone 的克隆。

对于 Linux、macOS 或 Unix:

aws docdb restore-db-cluster-to-point-in-time \ --source-db-cluster-identifier my-source-cluster \ --db-cluster-identifier my-clone \ --restore-type copy-on-write \ --use-latest-restorable-time

对于 Windows:

aws docdb restore-db-cluster-to-point-in-time ^ --source-db-cluster-identifier my-source-cluster ^ --db-cluster-identifier my-clone ^ --restore-type copy-on-write ^ --use-latest-restorable-time

该命令返回包含克隆详细信息的 JSON 对象。在尝试为您的克隆创建数据库实例之前,请检查以确保您的克隆数据库集群可用。有关更多信息,请参阅 检查状态并获取克隆的详细信息

检查状态并获取克隆的详细信息

您可以使用以下命令检查新创建的空数据库集群的状态。

$ aws docdb describe-db-clusters --db-cluster-identifier my-clone --query '*[].[Status]' --output text

或者,您可以使用下面的 Amazon CLI 查询获取为您的克隆创建数据库实例所需的状态和其他值。

对于 Linux、macOS 或 Unix:

aws docdb describe-db-clusters --db-cluster-identifier my-clone \ --query '*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}'

对于 Windows:

aws docdb describe-db-clusters --db-cluster-identifier my-clone ^ --query "*[].{Status:Status,Engine:Engine,EngineVersion:EngineVersion}"

此查询返回类似于下述信息的输出:

[ { "Status": "available", "Engine": "docdb", "EngineVersion": "4.0.0", } ]

为克隆创建 Amazon DocumentDB 实例

使用create-db-instanceCLI 命令为您的克隆创建数据库实例。

这些区域有:--db-instance-class参数仅用于预配置的Amazon DocumentDB B 集群。

对于 Linux、macOS 或 Unix:

aws docdb create-db-instance \ --db-instance-identifier my-new-db \ --db-cluster-identifier my-clone \ --db-instance-class db.r5.4xlarge \ --engine docdb

对于 Windows:

aws docdb create-db-instance ^ --db-instance-identifier my-new-db ^ --db-cluster-identifier my-clone ^ --db-instance-class db.r5.4xlarge ^ --engine docdb

用于克隆的参数

下表汇总restore-db-cluster-to-point-in-time克隆Amazon DocumentDB B 集群。

参数 描述

--source-db-cluster-identifier

使用要克隆的源 Amazon DocumentDB 集群的名称。

--db-cluster-identifier

为克隆选择一个有意义的名称。您可以使用 restore-db-cluster-to-point-in-time 命令为您的克隆命名。然后将此名称传递给 create-db-instance 命令。

--restore-type

指定copy-on-write作为--restore-type创建源数据库集群的克隆,而不是还原源 Amazon DocumentDB 集群。

--use-latest-restorable-time

此值指向克隆的最新可还原卷数据。