0Pricing
Azure Fundamentals · 课时

Azure 开源数据库引擎

在 Azure 上使用 PostgreSQL、MySQL 和 MariaDB 的托管服务,并将其与在 VM 上自行运行数据库引擎进行比较。

Azure 开源数据库引擎 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。

为什么选择托管开源数据库

许多组织将开源关系数据库引擎——PostgreSQL、MySQL 和 MariaDB——作为应用程序的基础。与其在 VM 上管理这些引擎(修补、备份和 HA 配置),Azure 不如提供完全托管的 PaaS 服务,负责繁重的运维工作,同时保留开发人员已经熟悉的 SQL 接口。

Azure Database for PostgreSQL

Azure Database for PostgreSQL 是一种完全托管的服务,支持 PostgreSQL 11 到 16 版本。它提供两种部署模式:单一服务器(即将停用)和 Flexible Server(当前推荐的选项)。Flexible Server 提供突发型、通用型和内存优化型计算层级供您选择,并支持在可用性区域内或跨可用性区域配置备用副本,以实现高可用性。

# Create a Flexible Server PostgreSQL instance
az postgres flexible-server create \
  --resource-group myRG \
  --name mypgserver \
  --location eastus \
  --admin-user pgadmin \
  --admin-password 'P@ssw0rd!' \
  --sku-name Standard_D2s_v3 \
  --tier GeneralPurpose \
  --version 16 \
  --high-availability ZoneRedundant

PostgreSQL Flexible Server 功能

Flexible Server 包含区域冗余高可用性,可自动故障转移到其他区域中的备用副本;支持添加只读副本以分担报表查询;还支持时间点还原,保留期限为 7 到 35 天。该服务还支持常用的 PostgreSQL 扩展,例如 PostGIS(地理空间扩展)、pgvector(用于 AI 的向量嵌入)和 pg_cron(计划作业)。

Azure Database for MySQL

Azure Database for MySQL 支持 MySQL Community Edition 5.7 和 8.0 版本。与 PostgreSQL 一样,它使用 Flexible Server 部署模型,并提供突发型、通用型和内存优化型计算层级。服务包含自动备份、修补和监视功能。对于依赖 MySQL 的 PHP 和 Web 应用程序,此服务经常被用作托管后端。

# Create a MySQL Flexible Server
az mysql flexible-server create \
  --resource-group myRG \
  --name mymysqlserver \
  --location eastus \
  --admin-user mysqladmin \
  --admin-password 'P@ssw0rd!' \
  --sku-name Standard_D2ds_v4 \
  --tier GeneralPurpose \
  --version 8.0

Azure Database for MariaDB

Azure Database for MariaDB 支持 MariaDB 10.3、10.4 和 10.6 版本。MariaDB 是 MySQL 的社区分支,提供额外的存储引擎和更快的发布周期。在 HA、备份和安全功能方面,托管 Azure 服务的功能与 MySQL Flexible Server 类似。请注意,Microsoft 已宣布将在 2025 年弃用此服务,并鼓励迁移到 MySQL Flexible Server。

托管服务与 VM 上的自托管服务

在 Azure VM 上运行开源数据库可以获得最大的控制权——您可以使用任意版本、任意扩展和任意 OS 设置——但也必须负责修补、备份、HA 配置、监视和存储管理。托管 PaaS 服务牺牲了一部分配置灵活性,却能显著减少运维工作。对于大多数标准 OLTP 工作负载,托管服务是合适的默认选择。

计算层级比较

三种托管服务采用相同的计算层级结构。突发型(B 系列)适合开发和低流量工作负载,这类工作负载不需要 CPU 持续满负荷运行。通用型(D 系列)适合大多数生产 OLTP 应用程序。内存优化型(E 系列或更高版本)适合工作集较大的工作负载,例如分析查询或内存中缓存模式。

存储和 IOPS 配置

Flexible Server 将计算与存储分离。存储由 Azure Premium SSD 提供支持,容量可从 20 GB 扩展到 64 TB。您可以启用存储自动增长,这样当存储容量达到 90% 时,服务会自动扩展存储,避免磁盘已满导致停机。IOPS 会随预配的存储大小扩展,您也可以独立预配额外的 IOPS。

# Enable storage autogrow on PostgreSQL
az postgres flexible-server update \
  --resource-group myRG \
  --name mypgserver \
  --storage-auto-grow Enabled

安全性:专用访问和加密

Flexible Server 支持两种网络模式:使用防火墙规则的公共访问(概念与 Azure SQL Database 相同),以及专用访问(VNet 集成),在这种模式下,服务器会注入委派子网,完全无法从互联网访问。所有静态数据都使用 AES-256 加密,默认情况下所有连接都要求使用 TLS;还可以强制使用不低于 TLS 1.2 的 TLS 版本。

使用只读副本进行横向扩展

三种托管开源服务都支持只读副本——主服务器的异步副本,可接受只读连接。应用程序可以将分析或报表查询定向到副本,从而减少主服务器的负载。副本可以位于同一区域,也可以位于其他 Azure 区域(跨区域副本),从而实现地理位置分布式读取,并可作为潜在的灾难恢复目标。

# Add a read replica to PostgreSQL server
az postgres flexible-server replica create \
  --resource-group myRG \
  --replica-name mypgserver-replica \
  --source-server mypgserver

监视和智能见解

Azure Database for PostgreSQL 和 MySQL 开箱即用地与 Azure Monitor 集成。CPU 百分比、内存使用率、存储 I/O、活动连接数和复制延迟等关键指标会流入 Azure 门户。查询性能见解会显示消耗资源最多的查询,使您能够添加索引或重写查询,而无需手动运行开销高昂的 EXPLAIN 命令。

快速检查

测试您对本课中 Microsoft Azure 基础知识(AZ-900)概念的理解。

课程回顾

本课中,您学习了:Azure 为 PostgreSQL、MySQL 和 MariaDB 提供完全托管的服务、Flexible Server 是推荐的部署模型,支持 HA、只读副本和 VNet 集成,以及与自托管 VM 相比,托管服务免除了修补和备份责任。接下来,我们将学习将数据库迁移到 Azure 的策略和工具。

常见问题解答

「Azure 开源数据库引擎」课时是免费的吗?

是的 — 「Azure 开源数据库引擎」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。

「Azure 开源数据库引擎」这节课中我会学到什么?

在 Azure 上使用 PostgreSQL、MySQL 和 MariaDB 的托管服务,并将其与在 VM 上自行运行数据库引擎进行比较。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Azure Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「Azure 开源数据库引擎」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Azure Fundamentals 课中编写并运行代码吗?

能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Azure SQL Database
  2. Azure Cosmos DB:全球 NoSQL
  3. Azure 开源数据库引擎
  4. 将数据库迁移到 Azure
← 返回 Azure Fundamentals