

# Aurora MySQL 高可用性的最佳实践
<a name="AuroraMySQL.BestPractices.HA"></a>

您可以应用以下最佳实践来改进 Aurora MySQL 集群的可用性。

**Topics**
+ [使用 Amazon Aurora 实现 MySQL 数据库的灾难恢复](#AuroraMySQL.BestPractices.DisasterRecovery)
+ [从 MySQL 迁移到 Amazon Aurora MySQL 并减少停机时间](#AuroraMySQL.BestPractices.Migrating)
+ [避免 Aurora MySQL 数据库实例性能降低、自动重启和故障转移](#AuroraMySQL.BestPractices.Avoiding)

## 使用 Amazon Aurora 实现 MySQL 数据库的灾难恢复
<a name="AuroraMySQL.BestPractices.DisasterRecovery"></a>

您可以在 MySQL 数据库实例中使用 Amazon Aurora 创建异地备份以进行灾难恢复。要使用 Aurora 实现 MySQL 数据库实例的灾难恢复，请创建 Amazon Aurora 数据库集群并使它成为 MySQL 数据库实例的只读副本。这适用于 RDS for MySQL 数据库实例或是在 Amazon RDS 外部运行的 MySQL 数据库。

**重要**  
在 MySQL 数据库实例和 Amazon Aurora MySQL 数据库集群之间设置复制时，应监控复制以确保它正常运行并在必要时进行修复。

有关如何创建 Amazon Aurora MySQL 数据库集群并使它成为 MySQL 数据库实例的只读副本的说明，请遵循 [使用 Amazon Aurora 为 MySQL 数据库扩展读取](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.ReadScaling) 中的过程。

有关灾难恢复模型的更多信息，请参阅[如何为 Amazon Aurora MySQL 集群选择最佳灾难恢复选项](https://aws.amazon.com/blogs/database/how-to-choose-the-best-disaster-recovery-option-for-your-amazon-aurora-mysql-cluster/)。

## 从 MySQL 迁移到 Amazon Aurora MySQL 并减少停机时间
<a name="AuroraMySQL.BestPractices.Migrating"></a>

将数据从支持活动应用程序的 MySQL 数据库导入到 Amazon Aurora MySQL 数据库集群时，您可能希望缩短在迁移时发生服务中断的时间。为此，您可以使用《Amazon Relational Database Service 用户指南》**的[将数据导入 Amazon RDS for MySQL 数据库实例并减少停机时间](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-importing-data-reduced-downtime.html)中介绍的过程。如果使用非常大的数据库，该步骤可能是非常有用的。您可以使用该步骤最大限度减少通过网络传送到 AWS 的数据量以降低导入成本。

该过程所列的步骤可将数据库数据的副本传输到 Amazon EC2 实例，并将数据导入到新的 RDS for MySQL 数据库实例。因为 Amazon Aurora 与 MySQL 兼容，所以您可以为目标 Amazon RDS MySQL 数据库实例改用 Amazon Aurora 数据库集群。

## 避免 Aurora MySQL 数据库实例性能降低、自动重启和故障转移
<a name="AuroraMySQL.BestPractices.Avoiding"></a>

如果您正在运行繁重的工作负载，或峰值工作负载超出为数据库实例分配的资源，则可能会耗尽运行应用程序和 Aurora 数据库的资源。要获取有关数据库实例的指标，例如 CPU 利用率、内存使用率和使用的数据库连接数，您可以参考 Amazon CloudWatch、Performance Insights 和增强型监控所提供的指标。有关监控数据库实例的更多信息，请参阅 [监控 Amazon Aurora 集群中的指标](MonitoringAurora.md)。

如果您的工作负载耗尽了您正在使用的资源，则数据库实例可能会变慢、重新启动，甚至故障转移到另一个数据库实例。为避免这种情况，请监控您的资源利用率，检查数据库实例上运行的工作负载，并在必要时进行优化。如果优化不能改善实例指标和缓解资源耗尽问题，请考虑在达到数据库实例的限制之前对其进行纵向扩展。有关可用数据库实例类及其规格的更多信息，请参阅 [Amazon Aurora数据库实例类](Concepts.DBInstanceClass.md)。