快速克隆和回溯数据库,加快应用程序开发

使用 Amazon Aurora

Amazon Aurora 是一种与 MySQL 和 PostgreSQL 兼容的关系数据库,既具有传统企业数据库的性能和可用性,又具有开源数据库的简单性和成本效益。在此教程中,您将了解如何克隆 Aurora 数据库集群来进行开发和测试,以及如何启用和使用回溯来将数据库集群“倒退”回您指定的时间。

如果您想评估数据库更改的影响,或者需要执行工作负载密集型操作(例如导出数据或运行分析查询),或者只是想在开发环境或测试环境中使用生产数据库副本,那么克隆 Aurora 集群非常有用。您可以多次克隆 Aurora 数据库集群。您甚至可以对其他克隆进行再克隆,但是必须在与源数据库相同的区域中创建克隆数据库。

通过回溯,您可以将 Aurora 数据库集群倒退回指定时间。启用回溯功能后,Aurora 会记录对数据库的更改,并允许您切换到与之前一致的状态。此功能可帮助您轻松撤消错误。例如,如果意外执行了破坏性操作(例如不带 WHERE 子句的 DELETE),则可以快速回溯到事故发生前的状态。与从快照或自动备份还原(操作较慢)不同,回溯可让您在几分钟之内来回切换。

在本教程中,您将创建一个启用回溯功能的 Aurora 数据库集群。您将向其中添加一些数据,并使用回溯功能在时间范围内来回切换。您将克隆数据库并对副本执行查询。

本教程不在免费套餐范围内,如果您按照教程中的步骤操作并在教程结束时终止相应资源,所需费用不超过 1 USD。

先决条件

您必须能够连接到数据库并向数据库发布命令。由于我们建议您不要为数据库集群分配公有 IP 地址,因此您可能需要一个与数据库集群处于同一 VPC 中的 EC2 实例。如果您尚未运行任何实例,请按照下面的说明预置一个。

然后,您可以通过运行 sudo yum install mysql 来安装 MySQL 客户端。 

关于本教程
时间 10-20 分钟                                           
费用 低于 1 USD
使用案例 数据库
产品 Amazon Aurora、Amazon RDS
受众 数据库管理员、开发人员
级别 中级
上次更新日期 2019 年 7 月 17 日

第 1 步:创建 Aurora 数据库集群

1.1 – 打开浏览器并导航到 Amazon RDS 控制台。如果您已有 AWS 账户,请登录控制台。如果您尚未拥有 AWS 账户,请创建账户以开始使用

已拥有账户? 登录您的账户

1.2 – 在右上角,选择要启动 Aurora 数据库集群的区域。

1.3 – 单击“Amazon Aurora”窗口中的“创建数据库”。

继续操作之前,请切换到新建数据库流程:

引擎选项

1.4 – 在“数据库引擎”中,选择“Amazon Aurora”。

1.5 – 在“版本”中,选择“兼容 MySQL 的 Amazon Aurora”。

1.6 – 在 Version (版本号) 中,选择与 MySQL 5.6 兼容的最新版 Aurora。这是因为“回溯”功能仅适用于该版本。

1.7 – 在“数据库位置”中,选择“区域”。

数据库功能

1.8 – 选择“单写入器,多读取器”。

模板

1.9 – 选择“生产”。

设置

1.10 – 为 Aurora 数据库集群选择一个标识符,例如“database-1”。

数据库实例大小

1.11 – 在“数据库实例大小”下,选择大型实例(以 .large 结尾的选项)。

可用性和持久性

1.12 – 选择“创建 Aurora 副本/读取器”。

连接

1.13 – 选择要在其中创建数据库的 VPC。

请注意,一经创建,数据库便无法迁移到其他 VPC。

1.14 – 单击“其他连接配置”。

1.15 – 在“子网组”下,选择默认值。

1.16 – 在“可公开访问”下,选择“否”。

这意味着您必须从同一个 VPC 中的 EC2 实例连接到数据库。

1.17 – 在“VPC 安全组”下,选择“新建”。如果您恰好有一个安全组允许在端口 3306 上传入 TCP 连接,也可以选择该安全组。 

1.18 – 在“新 VPC 安全组名称”中,键入“aurora-tutorial”。

其他配置

1.19 – 启用回溯。

1.20 – 在“目标回溯时间段”处,输入 24。回溯窗口确定了您可以回溯的最长时间,Aurora 将尝试保留足够的日志信息以支持该时间段的回溯。

1.21 – 对于 deletion protection (删除保护),取消选中 Enable deletion protection (启用删除保护)。

虽然最佳实践是启用 deletion protection (删除保护),但是,如果您想在本教程结束后删除数据库,则可以取消选中该选项。 

检查并创建

快速检查表单中的所有字段后,您可以继续操作。

1.22 – 单击“创建数据库”​。

在创建实例时,您将看到一个说明如何获取凭证的横幅。此时建议您将凭证保存到某个位置,因为之后您将无法再次查看该密码。

1.23 – 单击“查看凭证详细信息”。

1.24 – 保存用户名、密码和终端节点。

第 2 步:填充数据库

打开一个终端窗口,登录您的应用程序实例,然后使用 mysql 命令行客户端连接到您的 Aurora 数据库集群。然后,您将能够创建数据库、创建表并写入一些记录。

2.1 – 连接到主数据库:

$ mysql -h endpoint -P 3306 -u admin -p

每次使用命令读取终端节点时,都必须输入在第 1.24 步中保存的终端节点主机名。

同样,在系统提示您输入密码时,输入您在第 1.24 步中保存的密码。

2.2 – 创建数据库并写入一些数据。

mysql> CREATE database tutorial;
Query OK, 1 row affected (0.01 sec)

现在,您可以使用教程数据库、创建表和添加一些记录。

第 3 步:回溯数据库

3.1 – 单击您的 Aurora 数据库集群。

3.2 – 单击“操作”,然后选择“回溯”。

回溯数据库集群

3.3 – 选择日期和时间。Aurora 会将数据库集群回退到指定的时间点,而无需创建新的数据库集群。您可以选择创建数据库或创建表之前的时间。

3.4 – 点击 Backtrack DB cluster (回溯数据库集群)。

您将看到一个带有蓝色横幅的屏幕,提示正在执行回溯操作。

稍后,您将看到一个绿色横幅,这表示回溯操作已完成。

现在,您可以按照第 2 步中的操作连接到数据库,并验证数据库是否已还原到先前的状态。如有需要,您可以随时重复回溯操作。

第 4 步:克隆数据库

4.1 – 选择您的数据库。

4.2 – 单击“操作”,然后选择“创建克隆”。

4.3 – 为对象(例如“database-1-clone”)选择一个标识符。

4.4 – 单击“创建克隆”。

您将看到含有您克隆的 Aurora 数据库集群的数据库。

您对该克隆所做的任何操作都不会影响原始数据库集群。您可以通过单击克隆集群的名称来找到克隆的数据库及其副本的终端节点。

然后,您会在“终端节点”部分中看到终端节点。

现在,您可以按照第 2 步中的操作连接到克隆的数据库,并验证原数据库是否与克隆的数据库相同:您可以检查创建的数据库、表、用户和记录是否包含在克隆的数据库中。您可以对克隆的数据库进行修改或执行任何其他操作,然后检查原始数据库以确认它是否未受影响。

第 5 步:删除集群

为完成此教程并避免产生任何额外费用,您将学习如何在不再需要 Aurora 数据库集群时将其删除。要删除 Aurora 数据库集群,请转到 RDS 控制面板,然后按照以下说明进行操作。

5.1 – 在左窗格中,选择“数据库”。

此操作将列出您的所有 Aurora 数据库集群。首先,删除克隆的数据库。 

5.2 – 选择写入器实例。

5.3 – 单击“操作”,然后选择“删除”。

系统将询问您是否要创建最终备份。通常情况下建议您创建快照,但在本教程中没有必要这样做。

5.4 – 取消选中“创建最终快照”,然后选中“我确认...”。

5.5 – 键入“delete me”,然后单击“删除”。

集群的状态将更改为“正在删除”。

5.6 – 请选择您为本教程创建的 Aurora 数据库集群的读取器实例。 

5.7 – 单击“操作”,然后选择“删除”。

5.8 – 系统将提示您确认删除操作。键入“delete me”,然后单击“删除”。

5.9 – 请选择您为本教程创建的 Aurora 数据库集群的写入器实例。

5.10 – 单击“操作”,然后选择“删除”。

系统将询问您是否要创建最终备份。通常情况下建议您创建快照,但在本教程中没有必要这样做。 

5.11 – 取消选中“创建最终快照”,然后选中“我确认...”。

5.12 – 键入“delete me”,然后单击“删除”。

集群的状态将更改为“正在删除”。

恭喜

您已经创建了启用回溯功能的 Aurora 数据库集群。您已经了解了如何配置时间范围,您可以在该时间范围内对数据库进行来回切换。最后,您学习了如何克隆 Aurora 数据库集群。

本教程对您是否有帮助?