Azure Database for MySQL 的工作原理

已完成

在本单元中,你将从 Azure Database for MySQL 的体系结构开始,了解该服务的工作原理。 你还将了解该服务如何提供高可用性、备份功能和缩放以满足工作负载的需求。

Azure Database for MySQL 体系结构

下图描述了 Azure Database for MySQL 灵活服务器实例的体系结构。

前面所述典型组织中 Azure Database for MySQL 的详细体系结构图的屏幕截图。

  1. MySQL 实例在 Azure VM 上运行。
  2. 数据和日志存储在 Azure 高级存储中。
  3. 数据将在本地冗余存储中复制三次,以实现备份和复原。 该服务还提供用于配置区域冗余或异地冗余存储备份的选项。
  4. 此外,你还可以选择将连接到 MySQL 灵活服务器的各种客户端应用共置在同一可用性区域内。

你可以进一步选择同区域或区域冗余高可用性,这样会自动预配和维护备用副本。

高可用性的工作原理

对于 Azure Database for MySQL 灵活服务器,在单个可用性区域中的托管服务器发生故障后,将执行以下流程:

  1. Azure 预配新的虚拟机 (VM)。
  2. Azure 将存储和数据文件映射到新预配的 VM。
  3. MySQL 数据库引擎已联机。
  4. 客户端应用程序重新连接到新的 MySQL 实例。

注意

如果你跨区域预配了高可用性,则热备用服务器在同一 Azure 区域的另一个可用性区域中得到维护。 此服务器是主服务器的完全同步副本。 发生主服务器故障时,热备用服务器可以快速接管并尽量减少中断,从而保持服务可用性。

备份的工作原理

可以使用备份将服务器还原到保持期(为 35 天或长期保留情况下最长 10 年,预览版)内的任何时间点。

缩放的工作原理

Azure Database for MySQL 中的缩放涉及根据应用程序的需求调整计算资源,这可能会根据用户需求、所处理操作的复杂性或业务增长等因素而波动。 这种灵活性对于保持最佳性能和成本效益至关重要。

缩放类型

  1. 垂直缩放(纵向扩展/纵向缩减)
    • 计算缩放:这是指更改 MySQL 灵活服务器的计算层。 Azure 提供多个计算层,每个层旨在满足不同类型的工作负载:
      • 可突发:适用于存在 CPU 使用率间歇性爆发但不需要持续完整 CPU 性能的环境。
      • 常规用途:专为各种应用程序设计,提供计算、内存和 I/O 资源的平衡。
      • 业务关键:凭借更强大的 CPU 和更快的 I/O,为数据库提供最佳性能,适用于高事务、低延迟工作负载。
    • 内存和 CPU 分配:根据所选的层,可以缩放 vCore 数量和数据库可用的 RAM 量,这直接影响处理更大或更复杂的查询和更高数量的并发连接的能力。
  2. 水平缩放
    • Azure Database for MySQL 可以通过添加只读副本进行水平扩展,以在多个服务器中分发读取流量,从而在提高读取性能的同时,使主服务器可始终用于写入。 水平缩放允许数据库处理更多查询负载,以提高应用程序响应能力。
  3. 存储缩放
    • 动态存储缩放:使用 Azure Database for MySQL 可以增加存储容量,避免停机时间。 可以从较小的分配开始,并随数据的增长进行纵向扩展。
    • 自动增长功能:此功能会在达到容量限制之前自动增加存储大小,从而防止与存储约束相关的任何中断。

自动缩放 IOPS

自动缩放 IOPS(每秒输入/输出操作数)是一项可根据当前工作负载动态调整 I/O 吞吐量的功能。 这对于不可预知或容易出现高峰的工作负载模式特别有用,因为它可确保数据库能够处理负载的突然增加,而无需手动干预。

  • 基于负载的 IOPS 缩放:当工作负载增加且需要更多 I/O 吞吐量时,自动缩放功能会自动将 IOPS 限制增加到所选计算层中允许的最大值。 相反,可以在低活动量期间减少 IOPS,以最大程度地降低成本。
  • 成本效益:通过根据实际使用情况自动调整 IOPS,你只需为使用的 IOPS 付费,而不是过度预配资源来处理只会偶尔出现的峰值负载。

有关缩放的最佳做法

若要有效缩放 Azure Database for MySQL,请使用 Azure Monitor 监视性能指标、设置关键警报、通过查看使用模式来规划未来增长,以及在非高峰时段测试可伸缩性,以确保负载增加时的平稳性能。

通过了解和利用这些缩放机制,可以确保 Azure Database for MySQL 灵活服务器始终高效运行,从而适应当前和未来的业务需求。

配置和优化引擎行为

若要在 Azure Database for MySQL 中轻松配置和自定义服务器变量和参数,可以使用 Azure 门户、Azure CLI 或 REST API 调整查询缓存大小、连接超时和存储引擎首选项等设置,确保特定工作负载的最佳性能和行为。

接下来,考虑 Azure Database for MySQL 是否能够满足你的组织、其应用和数据库工作负载的要求。