Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

克隆 Aurora 数据库集群中的数据库

使用数据库克隆,可以快速而经济高效地创建您的所有数据库的克隆。克隆数据库在首次创建时只需要很少的额外空间。数据库克隆使用写入时复制协议,即在源数据库或克隆数据库中发生数据更改时复制数据。您可以多次克隆同一数据库集群。还可以基于其他克隆来创建更多克隆。有关写入时复制协议在 Aurora 存储上下文中工作原理的更多信息,请参阅 数据库克隆的写入时复制协议

您可以在多种情况下使用数据库克隆,特别是在您不希望影响生产环境时,例如:

  • 测试并评估更改的影响,例如架构更改或参数组更改

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

  • 在非生产环境中为进行开发或测试创建生产数据库集群的副本

限制

数据库克隆涉及到一些限制,如下所述:

  • 不能跨 AWS 区域创建克隆数据库。克隆数据库必须在与源数据库相同的区域中创建。

  • 当前,最多只能基于一个副本创建 15 个克隆,包括基于其他克隆的克隆。在超出 15 个之后,只能创建副本。但是,每个副本的克隆数也有最多 15 个的限制。

  • 目前不支持跨账户数据库克隆。

  • 您可以为克隆提供不同的虚拟私有云 (VPC)。但是,在这些 VPC 中的子网必须映射到同一组可用区。

数据库克隆的写入时复制协议

以下场景说明了写入时复制协议的工作原理。

在克隆数据库之前

源数据库中的数据以页的形式存储。在下图中,源数据库有四个页面。

  Amazon Aurora 源数据库,数据库克隆之前

克隆数据库之后

如下图所示,在克隆数据库之后,源数据库中没有更改。源数据库和克隆数据库均指向相同的四个页面。没有物理复制任何页面,因此,无需额外的存储。

  Amazon Aurora 源数据库和克隆数据库,数据库克隆之后

源数据库上发生更改时

在下面的示例中,源数据库对 Page 1 中的数据进行了更改。使用额外的存储创建名为 Page 1' 的新页,而不是写入原始 Page 1。源数据库现在指向新 Page 1',也指向Page 2Page 3Page 4。克隆数据库继续指向 Page 1Page 4

  Amazon Aurora 源数据库和克隆数据库,源数据库中发生更改之后

克隆数据库上发生更改时

在下图中,克隆数据库还进行了一项更改,这次是在 Page 4 中。使用额外的存储创建名为 Page 4' 的新页,而不是写入原始 Page 4。源数据库继续指向 Page 1',以及 Page 2 到 Page 4,但克隆数据库现在指向 Page 1Page 3,以及 Page 4'

  Amazon Aurora 源数据库和克隆数据库,克隆数据库上发生更改之后

如第二种情况中所示,在数据库克隆之后,创建克隆时无需额外的存储。但是,如第三和第四种情况所示,源数据库和克隆数据库中发生更改之后,将仅创建更改的页面。随着时间推移,当源数据库和克隆数据库上出现了更多更改时,逐渐需要更多存储来捕获和存储更改。

删除源数据库

删除与一个或多个克隆数据库关联的源数据库时,克隆数据库不受影响。克隆数据库继续指向以前由源数据库拥有的页面。

AWS 管理控制台

以下过程介绍如何使用 AWS 管理控制台克隆 Aurora 数据库集群。

使用 AWS 管理控制台创建数据库集群的克隆

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

  2. 在导航窗格中,选择 Instances。选择要为其创建克隆的数据库集群的主实例。

  3. 选择实例操作,然后选择 Create clone

  4. Create Clone 页面上,键入克隆数据库集群的主实例名称,作为数据库实例标识符

    如果需要,设置克隆数据库集群的任何其他设置。有关不同的数据库集群设置的信息,请参阅AWS 管理控制台

  5. 选择 Create Clone 启动克隆数据库集群。

CLI

以下过程介绍如何使用 AWS CLI 克隆 Aurora 数据库集群。

使用 AWS CLI 创建数据库集群的克隆

  • 调用 restore-db-cluster-to-point-in-time AWS CLI 命令并提供以下值:

    • --source-db-cluster-identifier – 要创建克隆的源数据库集群的名称。

    • --db-cluster-identifier – 克隆数据库集群的名称。

    • --restore-type copy-on-write – 指示创建克隆数据库集群的值。

    • --use-latest-restorable-time – 指定使用最近的可还原备份时间。

    以下示例创建名为 sample-source-cluster 的数据库集群的克隆。克隆数据库集群的名称为 sample-cluster-clone

    针对 Linux、OS X 或 Unix:

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

    对于 Windows:

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

注意

restore-db-cluster-to-point-in-time AWS CLI 命令仅还原数据库集群,而不还原该数据库集群的数据库实例。您必须调用 create-db-instance 命令为还原的数据库集群创建数据库实例,并在 --db-instance-identifier 中指定还原的数据库集群的标识符。只有在完成 restore-db-cluster-to-point-in-time 命令并且数据库集群可用后,您才能创建数据库实例。