跳至主要内容

Azure MySQL 灵活服务器:架构、可扩展性与实用技巧

探索 Azure Database for MySQL - Flexible Server 如何以先进架构、成本优化与无缝 Azure 集成驱动现代数据工作流。
· 12分钟 阅读

使用 AI 探索

Azure Database for MySQL Flexible Server 是微软面向现代数据驱动型应用推出的托管 MySQL 服务,满足高性能、可扩展性与可控性的需求。与早期的单服务器部署相比,它提供更可定制的架构,可更精细地调优计算、存储、可用性区域和维护时段。

对于 Azure 上的新项目,微软现推荐使用 Flexible Server。它提供更好的性能、成本优化的伸缩能力以及增强的高可用配置。无论是构建分析管道、支撑大规模事务型工作负载,还是创建实时看板,Flexible Server 都能为数据科学家和工程师在托管便利性与运维灵活性之间提供理想平衡。

本文将解释 Flexible Server 的架构、讨论可用的可扩展性选项,并给出使用该数据库的最佳实践。如果您是 MySQL 新手,建议先查看我们的MySQL 教程,了解如何使用 MySQL 数据库创建数据库并运行 SQL 查询。

MySQL Flexible Server 核心概念

Azure Database for MySQL Flexible Server 将计算与存储解耦,可分别独立伸缩,有助于优化成本与性能。其核心概念如下:

部署模型

Azure Database for MySQL Flexible Server 提供三种计算层,满足不同工作负载需求:

  • 可突发(Burstable): 适用于低成本的开发、测试或 CPU 需求较低且不需要持续满负载计算能力的工作负载。它使用 B 系列可突发虚拟机,为早期阶段或轻量应用提供具性价比的切入点。
  • 通用(General Purpose): 适合大多数对业务至关重要的工作负载,需要均衡的 CPU 与内存以及可扩展的 I/O 吞吐。它使用 D 系列虚拟机,支持具有可预测性能与可扩展性的生产级应用,如 Web 与移动应用。
  • 关键业务(Business Critical): 面向需要内存级性能以实现更快事务处理、更高并发与更低延迟的高性能数据库工作负载。它使用 E 系列虚拟机,适用于实时数据处理以及高要求的事务或分析型工作负载。

架构概览

为确保正常运行与数据冗余,Flexible Server 提供两种高可用(HA)架构模型:

  • 单可用区(AZ): 在该模型中,计算与存储位于同一物理数据中心。此选项延迟更低,但冗余性较弱。
  • 多可用区高可用: 计算与存储分布在同一 Azure 区域内的不同可用区。这可防范数据中心故障,并在最小停机时间内提供自动故障转移。

Flexible Server 会自动预配并管理用于高可用的备用副本,实现自动故障转移。在幕后,Flexible Server 会:

  • 自动备份并支持时间点还原(保留期最长 35 天)。
  • 可为修补与升级安排维护时段。
  • 自动修补底层操作系统与 MySQL 引擎。
  • 弹性伸缩与成本优化特性,如可突发计算层,以及停启服务器以降低成本的能力。
  • 企业级安全,包括 VNet 集成与专用终结点。

客户端、MySQL Flexible Server 与 Azure 服务之间的数据流

客户端、MySQL Flexible Server 与 Azure 服务之间的数据流。图片来源:OpenAI。

在上图中,包括以下组件:

  • 应用客户端: 可以是 Web 应用、移动应用,或运行在 Azure 上的其他服务(如 Azure App Service、Azure Kubernetes Service),也可以是外部环境。客户端通过标准 MySQL 协议并使用 TLS/SSL 建立安全通信。
  • MySQL Flexible Server: 负责 SQL 查询处理、事务管理与存储访问。通过其备用副本在故障转移场景下透明地管理数据可用性。
  • Azure 基础设施服务:Flexible Server 构建于 Azure 的计算、存储与网络基础设施之上,包括虚拟机(VM)、高级存储磁盘(基于 SSD)、用于网络隔离的 Azure 虚拟网络,以及编排备份的 Azure 备份服务。
  • Azure Monitor: Azure Monitor 及相关工具收集性能指标、日志与警报,以支持可观测性,并自动化管理任务,如自动伸缩或维护通知。

MySQL Flexible Server 关键特性

Azure Database for MySQL Flexible Server 为数据科学家与应用开发者提供了优化的可控性、高性能与高性价比。下面来看部分特性:

1. 高可用性

如其架构所示,Flexible Server 提供内置的高可用(HA)选项,以最大限度减少停机与数据丢失。跨可用区 HA 将备用副本部署在不同可用区,可防范整个可用区故障,并提供最高级别的可用性 SLA。另一方面,同可用区 HA 将主实例与备用副本部署在同一可用区,在更低延迟的同时提供冗余。

计费方面,您需为主实例与备用副本的计算与存储付费。备用副本不承担读写,仅用于快速故障转移。

因此,对于需要 99.99% SLA 并需应对广泛故障的生产工作负载,建议选择跨可用区 HA。对于开发/测试环境,或延迟极低比抵御整区故障更为关键的应用,同可用区 HA 则更具成本效益。

自 2025 年 9 月起,微软还在公测中引入了基于 SLB 的专用 HA 选项,为特定场景提供额外且可选的高可用配置方式。

2. 可扩展性

Flexible Server 允许您根据工作负载需求扩展数据库资源,具体包括:

  • 计算伸缩: 您可在可突发、通用与关键业务层之间上下扩展计算资源。此操作会在预配具有更新计算配置的新服务器时产生短暂停机。
  • 存储自动增长与 IOPS 预配: 存储可按需自动增长至 16 TB。该服务提供名为 Autoscale IOPS(按消耗计费)的动态 IO 模型,可根据工作负载消耗自动伸缩 IOPS。为获得可预测性能,您也可选择预配置 IOPS(固定且可预测)以满足特定性能要求。
  • 只读副本: 您最多可创建 10 个只读副本以支撑读密集型应用。这些主实例的异步副本处理只读流量,分担主实例压力并提升应用性能。

3. 成本优化

为更好地控制成本,Flexible Server 提供以下特性:

  • 启停功能: 您可按需停止或启动服务器。服务器停止时,仅按存储计费,不计计算费用。此功能对不需 24/7 运行的非生产环境尤为有用。
  • 可突发层: 可突发计算层为开发、测试及其他不需要持续高计算能力的工作负载提供高性价比选择。
  • 预留实例: 对于可预测的生产工作负载,您可通过购买 1 年或 3 年期的预留实例节省最高 67% 的计算成本,即预付指定数量的计算资源。

4. 安全与合规

Azure MySQL Flexible Server 的安全设计包括以下功能:

  • 静态数据加密: 所有静态数据均采用行业标准加密,包括符合 FIPS 140-2 的模块与 AES 256 位加密。
  • 传输中数据加密: 与服务器的连接使用 TLS 1.2 加密,确保传输过程中的数据受保护。
  • 专用终结点与防火墙规则: 与 Azure 虚拟网络集成,可配置专用终结点以实现安全、私密的访问。防火墙规则将访问限制为受信任的 IP 地址。
  • Azure Key Vault 集成: 为进一步提升安全与合规,您可将服务器与 Azure Key Vault 集成,集中且安全地管理数据库的机密与加密密钥。

5. 自动化维护

为降低管理开销,微软通过以下方式自动化维护 MySQL Flexible Server:

  • 系统或自定义维护时段: 为控制更新发生的时间,您可以在系统管理或自定义定义的维护窗口之间进行选择。
  • 小版本升级与修补: 平台会自动对 MySQL 与底层操作系统应用小版本升级与补丁,无需手动干预即可确保安全与稳定。
  • 自动备份与时间点还原: 服务会自动执行每日备份并持续备份事务日志。您可在保留期内(可配置为 1 至 35 天)将服务器还原到任意时间点。备份存储在同一可用区内的安全、本地冗余存储中。

面向数据科学工作流的 Flexible Server

Flexible Server 可为数据科学工作流提供可扩展的解决方案。本节将介绍其在高级分析与性能监控方面的应用。

高级分析用例

凭借其可扩展性与与其他 Azure 服务的集成,MySQL Flexible Server 适用于以下高级分析用例:

  • 用于分析与机器学习的只读副本: 对于大规模报表与机器学习,您可在只读副本上执行特征提取、模型评分等读密集型任务。这样可避免这些计算密集型查询影响负责核心 OLTP(联机事务处理)工作负载的主服务器性能。此架构确保您的应用在后台运行复杂分析的同时保持响应迅速。
  • 与 Azure 服务集成: Flexible Server 可与 Azure 生态系统集成。例如,您可使用 Azure Data Factory 设计 ETL/ELT 流水线。同样,您可以将 Flexible Server 连接到 Azure Synapse Analytics 以进行大规模数据仓库分析,将关系型数据与其他来源的数据结合,开展高级分析。

面向数据科学工作流的 MySQL Flexible Server

面向数据科学工作流的 MySQL Flexible Server。图片来源:OpenAI。

Data-In 复制

Flexible Server 支持入站复制,适用于混合与迁移场景。

  • 混合/多云数据同步: 该功能允许将数据从外部 MySQL 服务器(无论本地部署或其他云)复制到 Azure Database for MySQL Flexible Server。适用于构建混合数据解决方案或在不同云环境间同步数据,确保为应用与分析提供统一数据视图。
  • 最小停机迁移: 通过数据入站复制,您可将外部源服务器设为主服务器,将 Azure Flexible Server 设为副本。应用继续在源端运行,同时数据复制至 Azure。一旦 Azure 实例完全同步,即可在数秒到数分钟的短暂停机内完成切换,将应用流量重定向,实现最小停机迁移。

面向 ML/分析的性能监控

MySQL Flexible Server 通过以下方式为数据科学工作流提供监控与优化工具:

  • Azure Monitor 与慢查询日志: 您可以使用 Azure Monitor 查看与分析数据库的指标与日志。启用慢查询日志后,您可识别执行时间较长的查询,这些查询可能成为数据管道与分析流程的瓶颈。随后可据此优化查询,例如添加索引或重写查询逻辑。
  • Query Performance Insights 工作簿: Azure Monitor 内置工作簿,提供对数据库性能的智能分析。可快速识别运行时间长的 Top 查询、其执行趋势与资源使用情况(CPU、内存与存储)。作为数据科学家,您可利用该工具理解工作负载模式并优化用于机器学习与分析流程的查询,以确保效率并降低成本。

迁移与上手

迁移到 Azure Database for MySQL Flexible Server 可选择离线或在线方式,具体取决于您的应用对停机的容忍度。下面将介绍这些方法,并帮助您选择最适合的方案。

离线迁移

当您可以接受一段停机时间(例如非关键应用或计划维护窗口期间)时,离线迁移是不错的选择。

Azure Database Migration Service(DMS)是一项全托管服务,可处理您的迁移流程。对于离线迁移,它会对源数据库进行完整备份,并将其还原到目标 Flexible Server。

在迁移大型数据库时,您可以使用 mydumper 命令行工具进行多线程数据备份,然后使用 myloader 通过多个并发连接进行还原。与传统的单线程工具(如 mysqldump)相比,该方法能显著缩短大型数据库的整体迁移时间。

在线(最小停机)迁移

在高度生产化的环境中处理数据时,如希望尽量减少中断,应考虑在线迁移。

在这种情况下,您将使用数据入站复制,将 Azure Database for MySQL Flexible Server 设置为外部 MySQL 服务器的副本。源服务器继续处理事务,数据同时复制到 Azure。这样可实现最小停机,通常为数秒到数分钟。

此方法适用于混合或多云架构。您可以从本地、虚拟机、AWS RDS、Google Cloud SQL,甚至较早的 Azure 单服务器部署迁移。

提示与最佳实践

遵循以下最佳实践,无论您选择何种迁移方法,都有助于顺利、成功地完成迁移:

  • 环境预检查: 验证源与目标的网络连通性与防火墙,确保必要端口已开放。若使用中间 VM,请检查 Azure VM 规格,并确保源与目标之间的带宽充足。
  • 在开发环境中测试: 在进行生产迁移前,务必先在开发或预发布环境中执行测试迁移,以便在不影响线上应用的情况下发现并修复潜在问题。
  • 确保 MySQL 版本正确: 目标 Flexible Server 的 MySQL 版本必须与源服务器版本相同或更高。例如,若源为 MySQL 5.7,可迁移至运行 5.7 或 8.0 的 Flexible Server,但不能迁至 5.6。
  • 备份与回滚: 迁移与重大升级前务必执行按需备份,以便在必要时具备回滚方案。

需要注意的是,自 2025 年 9 月 1 日起,所有新建 Flexible Server 将基于 2025 年 9 月的最新版本预配,其中包括将现有 8.0 服务器升级至 MySQL 8.0.42、MySQL 8.4 的全面可用,以及增强的安全性(强制 TLS 1.2 与 CA 轮换)。您可通过 SELECT VERSION() 查询当前引擎版本。

快速上手与后续步骤

了解了 MySQL Flexible Server 的特性后,建议您进一步学习如何使用该平台。

微软提供为期 12 个月的免费 Azure 帐户,包含每月额度,可零成本试用 Azure Database for MySQL Flexible Server。其中包括每月 750 小时的可突发 B1ms 实例,足以连续运行单个实例;同时提供 32 GB 存储与 32 GB 备份存储。该免费层非常适合测试、学习与早期开发,之后可按需扩容。

微软还提供快速入门教程,帮助您在数分钟内完成首个服务器的设置。您可以查看Azure MySQL Flexible Server 快速入门文档,学习如何创建 MySQL Flexible Server、从您的应用连接并与 Azure 服务集成。

您也可以关注Azure Database for MySQL 博客,及时获取最新功能、技巧与最佳实践。

结语

Azure Database for MySQL Flexible Server 为现代数据科学工作流与大规模应用提供了稳健、可扩展且具成本效益的解决方案。它通过计算与存储分离、提供精细化控制并与更广泛的 Azure 生态集成,简化了数据库管理。

该服务的高可用、灵活伸缩与智能性能监控工具,使其成为 OLTP 应用与密集型分析的理想之选。

建议您利用 12 个月免费优惠亲自体验这些功能,看看 Flexible Server 如何简化您的数据运营并解锁新的项目可能性。别忘了报名我们的Understanding Microsoft Azure 课程,获取充分发挥 Azure Flexible Server 价值所需的实践经验。

MySQL Flexible Server 常见问题

什么是 Azure Database for MySQL Flexible Server?

这是一项基于 MySQL 的全托管关系型数据库服务,在 Azure 上提供高可用性、可扩展性与企业级安全。

Flexible Server 与 Single Server 有何不同?

Flexible Server 提供跨可用区高可用、自定义维护窗口、VNet 集成、可突发层与成本优化等特性,而 Single Server 不具备这些能力。

MySQL Flexible Server 提供哪些计算层?

Flexible Server 支持可突发、通用与关键业务三种计算层,可根据成本、性能与工作负载需求进行调优。

高可用(HA)与只读副本有何区别?

HA 通过维护被动备用服务器以进行故障转移,确保数据库始终可用,并对此计费。而只读副本是活跃的只读数据副本,用于横向扩展读密集型工作负载,并作为独立服务器计费。

Flexible Server 能否与分析工具集成?

是的。Flexible Server 能与 Azure Data Factory、Synapse Analytics 与 Power BI 原生连接,构建端到端数据管道。

Allan Ouko

作者

Allan Ouko

数据科学技术写作者,具备数据分析、商业智能和数据科学的一线实践经验。我撰写以行业为导向的实用内容,涵盖 SQL、Python、Power BI、Databricks 和数据工程,并以真实的分析工作为基础。我的写作兼顾技术深度与业务影响,帮助专业人士将数据转化为自信的决策。

主题