Azure Database for MySQL 简介
可将 Azure Database for MySQL 部署为灵活服务器(预览版),以便在 Azure 中托管组织 MySQL 数据库。 它是一种完全托管的数据库即服务,可以处理具有可预测性能和动态可伸缩性的任务关键型工作负荷。
作为具有多年运行和管理本地 MySQL 安装经验的数据库开发人员,你希望了解 Azure Database for MySQL 如何支持和缩放其功能。
在本单元中,你将了解 Azure Database for PostgreSQL 的定价、版本支持、复制和缩放选项。
了解 Azure Database for MySQL 的优点
Azure Database for MySQL 预配为 Azure Database for MySQL 服务器。 Azure Database for MySQL 服务器等效于本地 MySQL 服务器,并提供一个中心点来管理多个 MySQL 数据库。
若要创建 Azure Database for MySQL 数据库,必须先预配 Azure Database for MySQL 服务器。 Azure Database for MySQL 服务器是一个或多个数据库的父服务器,并为数据库提供命名空间。 如果删除服务器,将删除它包含的所有数据库。
Azure Database for MySQL 服务器提供哪些功能?
Azure Database for MySQL 服务包括高可用性,无需额外的成本和可伸缩性。 您只需为使用的内容付费。 提供自动备份和时间点恢复。
服务器提供连接安全性来强制实施防火墙规则,可能(可选)需要 SSL 连接。 使用许多服务器参数可以配置服务器设置,例如锁定模式、最大连接数和超时。 对标记为 “动态 ”的参数的更改会立即生效。 静态参数需要服务器重启。 使用门户中“概述”页上的“重启”按钮重启服务器。
Azure Database for MySQL 服务器包括用于添加警报的监视功能,以及查看指标和日志。
定价层
定价层支持从 1 到 64 个 vCore 和 5 GB 到 4 TB 存储的各种性能和容量。 基本定价层专为轻型计算工作负荷设计,支持最多两个 vCore,每个核心内存为 2 GB。 常规用途定价层将适用于大多数业务工作负荷,并支持从两到 64 个 vCore,每个核心有 5 GB 内存。 内存优化定价层支持两到 32 个 vCore,每个 vCore 的内存为 10 GB,适用于高性能工作负荷,包括实时数据分析。 尽管可以在常规用途和内存优化定价层之间切换,并在几秒钟内更改 vCore 数或存储数,但不能移入或移出基本定价层。
根据定价层和 vCore 数存在连接限制。 有关详细信息 ,请参阅 Azure Database for MySQL 中的限制 。
版本控制与升级
Azure Database for MySQL 支持版本 5.6(具有 bug 修复版本 5.6.42)、5.7(具有 bug 修复版本 5.7.24)和 8.0(具有 bug 修复版本 8.0.15)。
注释
网关将连接重定向到服务器实例。 MySQL 客户端将显示网关版本,而不是服务器实例的版本。 若要查看服务器实例的版本,请使用 SELECT VERSION():命令。
Bug 修复版本会自动应用,但不支持版本升级。 若要从一个版本升级到另一个版本,应执行转储和还原。
可伸缩性
如前所述,不能更改为基本定价层或从基本定价层更改。 但是,可以更改 vCore 数、硬件生成数、存储卷和备份保留期。 还可以在常规用途和内存优化定价层之间切换。
请注意,存储只会增加,不会减少,并且可以设置为自动增长。 如果启用自动增长,则当可用存储小于 1 GB 或 10% 存储卷(以大于者为准)时,存储将增长 5 GB。如果存储小于 100 GB,则存储会增大 100 GB。 对于超过 100 GB 的服务器,当可用存储小于 5%时,存储将增加 5%。
高可用性
Azure Database for MySQL 包括财务支持的服务级别协议(SLA),用于提供 99.99%。 如果存在硬件故障或服务部署,则会自动创建一个新节点,并将存储附加到此节点。 故障转移将在数十秒内完成。
如果 Azure Database for MySQL 服务器实例纵向扩展或缩减,则会出现类似的过程,即将数据存储附加到新实例。 如果发生故障转移、纵向扩展或缩减,或者客户端与 Azure 之间的 Internet 流量发生任何中断,则客户端可能会出现暂时性连接错误。 在应用程序中具有重试逻辑非常重要。 对于故障转移,网关会将流量定向到新节点,客户端无需配置。
有关处理暂时性错误的信息,请参阅 处理 Azure Database for MySQL 的暂时性连接错误。
在 Azure Database for MySQL 中复制数据
数据传入复制
数据传入复制使用 MySQL 的本机复制功能将数据从外部 MySQL 服务器复制到 Azure Database for MySQL。 如果要使用现有的本地 MySQL 实例和基于 Azure 的副本预配混合环境,这非常有用。 此方案为全局分布式系统中的用户提供本地数据。 还可以使用数据传入复制从另一个云提供程序托管的虚拟机或 MySQL 数据库服务复制数据。
数据传入复制的注意事项
下面是数据传入复制需要考虑的一些因素:
- 主服务器和副本服务器必须相同,并且至少是版本 5.6。
- 主数据库和副本应使用 InnoDB 引擎。
- 每个表都必须有一个主键。
- Azure Database for MySQL 服务器必须具有 “常规用途 ”或 “内存优化” 定价层。
- 你应该有权在主服务器上创建用户和配置二进制日志记录。
- 未复制 mysql 系统数据库 。 帐户和权限不会从主服务器复制到副本,应手动创建。
配置数据传入复制的步骤
配置数据传入复制的步骤有很多:
- 创建要用作副本主机的 Azure Database for MySQL 服务器,并创建任何必要的用户帐户和特权。
- 在主服务器上配置复制。
- 转储和还原主服务器。
- 使用数据传入复制存储过程配置目标服务器。
有关详细信息,请参阅 如何配置 Azure Database for MySQL 数据传入复制 。
只读副本
只读副本使用本机 MySQL 复制技术创建 Azure Database for MySQL 服务器的异步副本实例。 副本服务器是只读的,每个主服务器最多可以有五个副本。 对于每个只读副本,每月费用根据 vCore 及其使用的存储计费。
用于只读副本
报表服务器
通过创建主服务器的只读副本,可将所有报告、BI 和分析工作负荷定向到副本。 这会从主服务器中删除工作负荷,并减少冲突,而主服务器运行其写入密集型工作负荷。
使数据靠近用户
创建跨区域副本,使数据接近用户并提高其读取速度。 跨区域副本可以位于通用副本区域或主服务器的配对区域。 创建副本服务器时会列出可用区域。
配置只读副本
在 Azure 门户中配置只读副本:
然后指定副本的名称和区域:
注释
只读副本在基本定价层中不可用。
有关读取副本的详细信息,请参阅 Azure Database for MySQL 中的读取副本。
管理和监视
Azure Database for MySQL 具有各种监视工具,可帮助你优化服务器、收到事件通知并主动响应指标。 还可以使用熟悉的 MySQL 管理工具(例如最新版本的 MySQL Workbench、PHPMyAdmin 和 Navicat)来管理和监视 Azure Database for MySQL 服务器:
用于监视 Azure Database for MySQL 的 Azure 工具
用于管理和监视 Azure Database for MySQL 的 Azure 门户中提供的工具包括:
Azure 指标。 指标每分钟提供一次数值数据,并存储 30 天。 可以使用各种指标来监视服务器- 还可以配置警报以响应指标。
有关详细信息,请参阅 Azure Monitor 数据平台 。
服务器和审核日志。 启用服务器日志来监视慢速查询并为服务器提供审核日志记录。 服务器日志可通过 Azure 诊断日志在 SQL Database for MySQL 外部使用。
有关详细信息,请参阅 Azure Database for MySQL 中的慢查询日志 。 审核日志是一项预览功能,用于提供用于跟踪数据库活动的审核日志记录。 若要启用审核日志记录,请将 audit_log_enabled 参数设置为 ON。 有关审核日志的详细信息,请参阅 Azure Database for MySQL 中的审核日志。
查询存储。 这用于跟踪服务器随时间推移的性能并提供故障排除信息。 查询存储会保留查询历史记录和运行时统计信息,以便可以识别资源密集型或长时间运行的查询。 若要启用查询存储,请将 query_store_capture_mode 服务器参数设置为 ALL:
若要查看查询存储有关查询的数据,请运行以下查询:
SELECT * FROM mysql.query_store;
若要查看有关等待统计信息的数据,请运行以下查询:
SELECT * FROM mysql.query_store_wait_stats;
注释
查询存储是一项预览功能,在基本定价层中不可用。
有关查询存储的详细信息,请参阅 使用查询存储监视 Azure Database for MySQL 性能。
查询性能见解。 查询性能见解将查询存储中的数据显示为可视化效果,使你能够识别影响性能的查询。 Query Performance Insight 位于 Azure 门户中 Azure Database for MySQL 的 “智能性能 ”部分。
注释
Query Performance Insight 是一项预览功能,在基本定价层中不可用。
有关 Query Performance Insight 的详细信息,请参阅 Azure Database for MySQL 中的 Query Performance Insight。
性能建议。 性能建议使用查询存储中的数据来分析工作负荷,并将这些数据与数据库特征相结合,以建议新索引以提高性能。 性能建议位于 Azure 门户中 Azure Database for MySQL 的 “智能性能 ”部分中。
注释
性能建议是一项预览功能,在基本定价层中不可用。
有关性能建议的详细信息,请参阅 Azure Database for MySQL 中的性能建议。
客户端连接
MySQL 驱动程序
Azure Database for MySQL 使用 MySQL 社区版,并且与各种驱动程序兼容-它支持各种编程语言。 Azure 门户中提供了连接字符串:
有关 MySQL 驱动程序的详细信息,请参阅 与 Azure Database for MySQL 兼容的 MySQL 驱动程序和管理工具
配置防火墙
配置防火墙的最简单方法是在 Azure 门户中为服务使用连接安全设置。 为每个客户端 IP 地址范围添加规则。 还可以使用此页来强制与服务建立 SSL 连接。
单击工具栏中的 “添加客户端 IP ”以添加台式计算机的 IP 地址。
如果已配置只读副本,则必须将防火墙规则添加到每个副本,以使客户端可以访问它们。
暂时性连接错误
通过 Internet 连接到数据库时,暂时性连接错误是不可避免的,应由客户端应用程序处理。
有关暂时性连接错误的信息,请参阅 处理 Azure Database for MySQL 的暂时性连接错误。
Azure Database for MySQL 中不支持的 MySQL 功能
虽然 MySQL 中的大多数功能在 Azure Database for MySQL 中可用,但不支持某些功能。 应查看这些功能,以确保在迁移时缓解任何潜在问题。
存储引擎
Azure Database for MySQL 支持 InnoDB 和 MEMORY 存储引擎。 InnoDB 是 MySQL 的默认存储引擎,在高性能和可靠性之间提供平衡。 除非另行指定,否则 MySQL 中的所有新表都将使用 InnoDB 存储引擎。
有关 InnoDB 存储引擎的详细信息,请参阅 innoDB 简介。
若要将数据存储在内存中,内存存储引擎可用。 此数据受到任何形式的故障或中断的风险 - 内存存储引擎应仅用作临时高性能存储。
有关内存存储引擎的详细信息,请参阅内存存储引擎。
Azure Database for MySQL 不支持 MyISAM、BLACKHOLE、ARCHIVE 和 FEDERATED 存储引擎。 MyISAM 数据应转换为 InnoDB 存储引擎。 BLACKHOLE、ARCHIVE 和 FEDERATED 存储引擎具有专业角色,不用作典型数据存储。
特权和角色
DBA 角色不会公开,因为许多服务器设置和参数可能会中断事务规则并降低性能。 出于类似原因,SUPER 特权受到限制,使用 SUPER 特权的 DEFINER 子句也受到限制。
还原
Azure Database for MySQL 中的两个还原功能在功能上不同:
- 时间点还原会创建一个与它所基于的服务器相同的配置的新服务器。
- 无法还原已删除的服务器。