

# 教程：从开发到生产，管理 MySQL 数据库实例环境
<a name="tutorial-managing-MySQL-DB"></a>

## 简介
<a name="tutorial-managing-MySQL-DB.introduction"></a>

管理 Amazon RDS 数据库实例时，常见的场景是监督该实例从初始开发到生产部署的生命周期。本教程为处理关键任务提供了指导，来确保数据库以上佳状态运行，并适应不断变化的运营需求。此外，还概述了在开发环境和生产环境之间同步所做更改的选项，来确保一致性和可靠性。

通过完成这些步骤，您将学习：
+ 如何对 MySQL 数据库实例执行特定任务，例如添加和更新 Amazon RDS 标签、扩展存储、创建只读副本和删除资源。
+ 如何将更新从生产环境同步到开发环境，来进行全面测试和验证。

 要完成本教程，请执行以下任务：

1. 创建 MySQL 数据库实例。

1. 添加 Amazon RDS 标签，来将数据库实例归类为开发环境。

1. 增加数据库实例的存储容量，来适应增加的工作负载。

1. 创建只读副本，来增强数据库实例的弹性和可用性。

1. 更新 Amazon RDS 标签，来将数据库实例归类为生产环境。

1. 删除您不再需要的数据库实例，这样它们就不会产生额外费用。

1. 后续步骤：将开发实例与生产同步以实现跨环境的一致性

## 先决条件
<a name="tutorial-managing-MySQL-DB.Prerequisites"></a>

在开始之前，请完成以下各节中的步骤：
+ [注册 AWS 账户](CHAP_SettingUp.md#sign-up-for-aws)
+ 

## 添加标签以将数据库实例归类为开发环境
<a name="tutorial-managing-MySQL-DB.add-RDS-Tags"></a>

要将数据库实例归类为开发环境，请向您创建的实例添加一个 Amazon RDS 标签。Amazon RDS 标签是您定义的键值对，且与您的 RDS 实例关联。为 AWS 资源添加标签有助于区分开发和生产 AWS 资源。有关 Amazon RDS 标签的更多信息，请参阅[为 Amazon RDS 资源添加标签](USER_Tagging.md)。

1. 在 Amazon RDS 控制台中，选择**数据库**。

1. 选择要添加标签的数据库实例。

1. 在详细信息部分中，滚动到**标签**部分。

1. 选择**管理标签**，然后选择**添加新标签**。

1. 为**标签键**和**值**输入一个值。例如，可以使用值为 dev 的标签键环境，来指定数据库实例是开发环境的一部分。

1. 选择**添加新标签**和**保存更改**。

数据库实例现已标记为开发环境。这样，就可以更轻松地识别数据库实例，并管理与此资源关联的成本。

## 增加数据库实例的存储容量来适应不断增长的数据需求
<a name="tutorial-managing-MySQL-DB.increase-DB-storage"></a>

接下来，修改 MySQL 数据库实例的存储容量，来容纳更多数据。最初，数据库实例的存储容量设置为满足应用程序的即时需求。但是，随着数据量增长，可能需要调整存储设置，来确保数据库的持续性能和稳定性。此过程涉及增加数据库实例的已分配存储空间。有关修改数据库实例的存储容量的更多信息，请参阅[使用 Amazon RDS 数据库实例的存储](USER_PIOPS.StorageTypes.md)。

1. 在 Amazon RDS 控制台中，选择**数据库**。

1. 选择要修改的数据库实例。

1. 选择 **Modify**（修改）。

1. 在“存储”中，增加**分配的存储空间**。修改后的存储值必须大于当前值。

1. 选择**继续**。

1. 在**修改计划**中，可以选择**立即应用**，以便立即将存储更改应用于数据库实例；也可以选择**在下一个计划的维护时段内应用**，以便在下一个维护时段内应用更改。

1. 根据需要设置完毕后，选择**修改数据库实例**。

数据库实例的存储容量现已增加。这使该实例能够有效地处理更大的数据量，并确保随着应用程序数据需求的增长而持续保持性能和稳定性。

## 创建只读副本来增强数据库实例的弹性和可用性
<a name="tutorial-managing-MySQL-DB.create-read-replicas"></a>

创建 MySQL 数据库实例的只读副本。只读副本可增强数据库实例的弹性和可用性。要减少主数据库实例上的读取流量，请创建数据库实例的只读副本。这会将查询路由到只读副本，有助于分散负载并提高数据库的整体性能。有关数据库实例只读副本的更多信息，请参阅[使用数据库实例只读副本](USER_ReadRepl.md)。

在 MySQL 数据库实例可充当复制源之前，必须在源数据库实例上启用自动备份。这可以通过将备份保留期设置为非 0 值来实现。有关 MySQL 只读副本的更多信息，请参阅[使用 MySQL 只读副本](USER_MySQL.Replication.ReadReplicas.md)。

1. 在 Amazon RDS 控制台中，选择**数据库**。

1. 选择要用作只读副本的源的数据库实例。

1. 在“操作”中，选择**创建只读副本**。

1. 对于**数据库实例标识符**，输入只读副本以全小写字母表示的名称。

1. 选择您的实例配置。建议您为只读副本使用与源数据库实例相同或更大的数据库实例类和存储类型。

1. 对于 **AWS 区域**，指定只读副本的目标区域。

1. 保留默认设置，或根据需要对其进行修改。

1. 选择**创建只读副本**。

在 RDS 控制台中的**数据库**页面上，只读副本显示在源数据库实例的下方。它在“角色”列中显示**副本**。

## 更新标签以将数据库实例归类为生产环境
<a name="tutorial-managing-MySQL-DB.update-tags"></a>

当数据库实例准备好从开发阶段转到生产阶段时，更新其标签来反映其转换非常重要。要使数据库实例与运营和监控策略保持一致，请更新初始标签，来指示该数据库实例现在已成为生产环境的一部分。这样可以确保数据库的更好可见性和管理。

1. 在 Amazon RDS 控制台中，选择**数据库**。

1. 选择要更新的数据库实例。

1. 在详细信息部分中，滚动到**标签**部分。

1. 选择**管理标签**。

1. **移除**表示开发环境的初始标签。

1. 选择**添加新标签**。

1. 为**标签键**和**值**输入新值。例如，可以使用值为 prod 的标签键环境，来指定数据库实例是生产环境的一部分。

1. 选择**添加新标签**和**保存更改**。

数据库实例上的标签已更新，来表示数据库转换到生产环境。

### 当不再需要数据库实例时，将其删除以免产生额外费用
<a name="tutorial-managing-MySQL-DB.delete-unecessary-resources"></a>

在本教程结束之前，解决资源管理问题至关重要。如果您有任何不再需要的资源，应该继续删除它们，以免产生额外的成本并优化云环境。

1. 在 Amazon RDS 控制台中，选择**数据库**。

1. 选择要删除的数据库实例

1. 在“操作”中，选择**删除**。删除数据库实例将永久删除该实例及其所有内容和相关资源。

1. 确认删除数据库实例，然后选择**删除**。

或者，如果您选择维护数据库实例以备将来使用，则可以继续将其作为生产环境的一部分进行管理。这包括维护同步的开发环境来促进全面的测试和验证。有关更多信息，请参阅 [后续步骤：将开发实例与生产同步以实现跨环境的一致性](#tutorial-managing-MySQL-DB.next-steps-synch-env)。

### 后续步骤：将开发实例与生产同步以实现跨环境的一致性
<a name="tutorial-managing-MySQL-DB.next-steps-synch-env"></a>

#### 创建开发环境
<a name="next-steps-synch-env.create-development-env"></a>

要管理生产环境，务必维护同步的开发环境来进行全面的测试和验证。要创建新的开发环境，请先创建当前生产数据库实例的数据库快照。数据库快照通过创建存储卷快照来捕获整个数据库实例。有关如何在 Amazon RDS 控制台上创建数据库快照的说明，请参阅[为 Amazon RDS 的单可用区数据库实例创建数据库快照](USER_CreateSnapshot.md)。

创建生产环境的数据库快照后，通过还原数据库快照，为开发环境创建一个新的数据库实例。还原的数据库实例自动与默认数据库参数和选项组关联。但是，您可以通过在还原期间指定自定义参数组和选项组来应用它们。有关还原数据库快照的说明，请参阅[教程：从数据库快照还原 Amazon RDS 数据库实例](CHAP_Tutorials.RestoringFromSnapshot.md)。

最后，通过更新新数据库实例的 Amazon RDS 标签，将其指定为新的开发环境。有关更新 Amazon RDS 标签来反映此项更改的指南，请参阅上一节[更新标签以将数据库实例归类为生产环境](#tutorial-managing-MySQL-DB.update-tags)。

现在，您有了新的开发环境，它镜像生产环境的数据库配置。

#### 将开发环境与生产环境同步
<a name="next-steps-synch-env.synchronize-environments"></a>

一旦建立了新的开发环境，就务必使其与生产环境中发生的任何更改保持同步。这可以确保开发环境准确地反映当前的生产状态，这对于进行有效的测试、验证和故障排除至关重要。Amazon RDS 提供了多种不同的方法，来使开发环境与生产环境保持同步。有关这些选项的更多信息，请参阅 [Orchestrating database refreshes for Amazon RDS and Amazon Aurora](https://aws.amazon.com/blogs/database/orchestrating-database-refreshes-for-amazon-rds-and-amazon-aurora/)。

同步开发环境和生产环境的主要方法之一是创建和还原数据库快照。数据库快照可让您创建开发环境，该环境将反映在创建快照时生产环境的数据库配置。有关数据库快照的更多信息，请参阅[管理手动备份](USER_ManagingManualBackups.md)。有关还原数据库实例的更多信息，请参阅[还原到数据库实例](USER_RestoreFromSnapshot.md)。

数据库快照对于以下用例特别有价值。
+ 开发环境的初始设置：数据库快照对于创建用于测试的初始开发环境很有用，因为它提供了一致的基准，可镜像在创建快照时生产环境的确切状态。
+ 高流量应用程序：在持续运行极为重要的生产环境中，对快照使用多可用区部署可避免主数据库上发生 I/O 暂停，从而确保不间断的性能和高可用性。
+  在不同的 RDS 账户间共享数据：可以在不同的 AWS 账户间共享数据库快照，从而促进账户或区域之间的数据传输。这对于协作项目或出于各种目的而需要共享数据的场景很有用。有关更多信息，请参阅 [共享 Amazon RDS 的数据库快照](USER_ShareSnapshot.md)。

在本教程中，您探讨了在数据库实例的整个生命周期中对其进行管理的基本任务。您学习了如何创建数据库实例、添加和更新 Amazon RDS 标签、扩展存储空间以及创建只读副本。您还学习了在这些基本操作的基础上进行构建以及有效管理生产环境的方法。这包括建立用于测试的开发环境，并将其与生产环境同步来保持一致性。这些任务有助于维护充满弹性和可扩展的数据库基础设施，确保 Amazon RDS 环境高效运行。