Azure SQL 产品
- 15 分钟
Azure SQL 系列中的产品提供不同的功能和部署选项来满足业务需求,使你可以灵活地获取和支付所需的内容。
本单元介绍在选择 Azure SQL 产品时需要做出的一些注意事项。 此处讨论的产品包括 Azure SQL 数据库、Azure SQL 托管实例和 Azure 虚拟机(VM)上的 SQL Server。
IaaS 与PaaS
Azure SQL 提供平台即服务(PaaS)和基础结构即服务(IaaS)产品。 使用 PaaS 时,无需担心底层基础结构,因为大多数任务(如修补和备份)都由服务自动管理。 你可以专注于应用程序和数据。
使用 IaaS,可以更好地控制底层基础结构,但也有责任管理基础结构。
Azure 虚拟机上的 SQL Server 最接近 IaaS,而 Azure SQL 数据库最接近 PaaS。 Azure SQL 托管实例也是 PaaS 平台,但与本地 SQL Server 实例相似。
- Azure SQL 数据库是一个完全托管的数据库,会自动配置硬件、网络、灾难恢复和高可用性。 你有权访问某些实例级对象的逻辑服务器,例如 SQL 登录名。 数据库是独立封装且可独立缩放的,并且你能够快速轻松地故障转移数据的异地复制副本。
- Azure SQL 托管实例提供完全托管的 SQL Server 实例,并自动提供作系统、存储、网络、备份和高可用性。 对于从现有的本地 SQL Server 实例进行迁移来说,SQL 托管实例是一个理想的目标,它保留了 SQL Server 安装的几乎所有功能,此外还具备许多以云优先的功能,比如异地复制的读取扩展副本。
- Azure 虚拟机上的 SQL Server 提供对操作系统的直接访问,以及高度可配置的存储、网络,与本地 SQL Server 的兼容性。
无版本数据库服务
IaaS 和 PaaS 之间的另一个显著区别是“无版本 SQL”。 与与你选择的特定 SQL Server 版本绑定的 IaaS 不同,Azure SQL 数据库和 Azure SQL 托管实例(使用 Always-up-to-date 更新策略)是无版本的。 SQL Server 引擎代码库的主要“分支”为最新版本的 SQL Server、SQL 数据库和 SQL 托管实例提供支持。
尽管 SQL Server 版本每隔几年出现一次,但 PaaS 服务允许Microsoft不断更新 Azure SQL 的 SQL 数据库引擎。 Microsoft根据需要推出修补程序和功能,通常 PaaS 平台会首先获得新功能。 作为服务的使用者,你无法控制这些更新,不过你可以围绕典型的业务周期计划定期维护时段。 但是,无版本的 SQL 允许对底层操作系统和 SQL Server 进行无忧修补,并让Microsoft为你提供最新更新。
随着新功能的开发,部分客户可以在特定功能公开发布前获得其访问权限。 这些新功能随后会在公共预览版中提供。 公共预览版允许每个人访问新功能,但所提供的支持通常有限,并经常打折。
请注意 Azure SQL 托管实例的 Always-up-to-date 更新策略。 更新策略是 Azure SQL 托管实例的配置选项,可用于选择基础数据库格式的版本。 默认情况下,除非另有指定,否则会使用 SQL Server 2022 更新策略创建每个新实例,这样就可以在 SQL Server 2022 和 Azure SQL 托管实例之间实现数据库移动性。
SQL Server 2022 更新策略可解锁在两个产品之间还原数据库,或使用托管实例链接功能在 SQL Server 和 Azure 之间双向复制数据。 但是, SQL Server 2022 更新策略还会将 Azure SQL 托管实例锁定到 SQL Server 2022 中可用的功能,因此你可能无法访问 SQL Server 数据库引擎的更高版本中提供的某些最新功能。 可以选择改为启用 Always-up-to-date 更新策略,这会使 SQL 托管实例“无版本”。 启用后,不再可能返回到 SQL Server 2022 更新策略,因此请谨慎行事。
如何选择
由于不同的 Azure SQL 产品在特性和功能方面存在差异,因此必须选择最能满足需求的产品。
Azure SQL 数据库
PaaS Azure SQL 数据库将操作系统和 SQL Server 实例均从用户层面进行了抽象化处理。 此选项允许获取数据库并开始开发应用程序。 SQL 数据库还是唯一一款支持需要无限数据库存储(超大规模)以及对不可预测工作负载自动缩放(无服务器)的产品。 SQL 数据库具有行业最高的可用性 SLA(服务级别协议)。 它还提供与监视和性能相关的其他智能功能。
由于使用 Azure SQL 数据库,因此部署数据库时,某些实例级功能(例如跨数据库事务)无法本机使用。
Azure SQL 数据库非常适合:
- 现代应用程序开发新的云生应用程序,这些应用程序希望使用最新稳定的 SQL Server 功能,并在开发和营销方面面临时间限制。
- 使用多租户 SaaS 应用程序模式的应用程序
- 需要无限存储或针对不可预测工作负载进行自动缩放的工作负载
Azure SQL 托管实例
PaaS Azure SQL 托管实例提供 SQL Server 的完全托管实例,但消除了管理基础结构的大部分开销。
与 SQL 数据库不同,SQL Server 中提供的大多数实例级功能在 Azure SQL 托管实例中可用-例如 SQL Server 代理、Service Broker、公共语言运行时 (CLR)、数据库邮件、链接服务器、分布式事务和机器学习服务。
SQL 托管实例允许访问这些实例范围的功能。 但是,无需担心,也不必访问下面的 OS 或基础结构。
SQL 托管实例非常适合:
- 想要使用 Azure SQL 数据库中不可用的实例范围功能(例如 SQL Server 代理)的客户
- 没有时间限制且想要使用最新稳定 SQL Server 功能的新应用程序
- 将现有本地应用程序移到 Azure,而无需重新架构应用程序
- 工作负载以最少的更改迁移到云上
Azure VM 上的 SQL Server
Azure VM 上的 IaaS SQL Server 只是安装到 Azure 中 Windows 或 Linux VM 的 SQL Server 版本。 SQL 虚拟机在Microsoft拥有、托管和维护的标准化硬件上运行。 事实上,在 Azure VM 上运行 SQL Server 与在本地运行 SQL Server 非常相似。 这只是 SQL Server,因此所有 SQL Server 技能都应直接转移。 更新和修补 OS 和 SQL Server 可以是手动或自动化的,但关键的 SQL Server 安全修补程序仍由作系统自动化。 例如,Azure 更新管理器可以自动修补 Windows 或 Linux Azure VM 上的 SQL Server 实例。 可以访问 SQL Server 和底层 VM 基础结构的完整功能。 可以使用许多在本地使用的相同工具和流程,以及新的基于云的工具,以便更轻松地进行管理。 例如,Windows SQL Server IaaS 代理扩展、Azure Monitor 和 Azure 备份。
所有受支持的 SQL Server 版本都可用于在所有受支持的作系统上安装。 与 SQL 数据库和 SQL 托管实例最重要的区别在于,Azure VM 上的 SQL Server 允许对 SQL Server 实例和基础作系统进行完全管理控制。 可以选择包括系统更新在内的维护活动的开始时间、将恢复模式更改为简单模式或批量记录模式、根据需要暂停或启动服务,并且可以完全自定义 SQL Server 数据库引擎。 控制度的提高也意味着在管理虚拟机方面需要承担更大的责任。
Azure VM 上的 SQL Server 非常适合:
- 需要在完全不做或几乎不做任何更改的情况下快速迁移到云的直接迁移场景
- 迁移那些需要对 SQL Server 实例以及底层操作系统进行完全控制的现有应用程序
- 不想为 SQL Server 购买本地硬件时,快速开发和测试方案
- 当组织已有可用于维护虚拟机的 IT 资源时
- 将现有的高可用性和灾难恢复解决方案迁移到云,例如 AlwaysOn 故障转移群集实例或 AlwaysOn 可用性组
部署选项
Azure SQL 产品旨在满足不同工作负载的需求,不同的部署选项提供可伸缩性和灵活性。
例如,使用 Azure SQL 数据库,在部署数据库时,可以选择将其部署为单一数据库,也可以将资源与弹性池中的其他数据库共用。 弹性池是共享同一组资源的数据库集合。 此选项非常适合 SaaS 应用程序,你可以以简化的方式管理并监视许多数据库的性能。
同样,使用 Azure SQL 托管实例,可以选择部署单个托管实例,也可以将资源与实例池中的其他托管实例共用。 此选项非常适合希望将多个 SQL Server 工作负荷合并到更少的托管实例的组织。 值得注意的是,实例池是部署 2-vCore SQL 托管实例的唯一方法。 可以在部署之前预配计算资源,从而缩短总体部署时间,以便更轻松地迁移。
虽然 Azure VM 上的 SQL Server 没有特定的部署选项,但仍可以在预安装 SQL Server 的部署 Azure VM 映像之间进行选择,也可以稍后部署 Azure VM 并安装 SQL Server。 选择不同的 VM 大小和存储类型以满足工作负荷的需求。 若要在 Azure VM 上使用特定于 Azure 的功能(例如自动备份和自动修补),请将 SQL Server VM 注册到 SQL IaaS 代理扩展。 该扩展使你能够在 Azure 门户中管理 SQL Server VM,例如更改计费或配置特定于 Azure 的功能。
下图总结了 Azure SQL 的部署选项:
客户故事
对于一些实际应用程序,请考虑某些Microsoft客户如何使用 Azure SQL。
Azure SQL 数据库
AccuWeather 是使用 SQL 数据库的一个很好的例子。 AccuWeather 已对天气进行超过 55 年的分析和预测。 该公司希望访问 Azure 的大数据、机器学习和 AI 功能。 AccuWeather 希望将重点放在生成新模型和应用程序上,而不是放在管理数据库上。 该公司选择将 SQL 数据库与其他服务(例如 Azure 数据工厂和 Azure 机器学习)配合使用,以快速轻松地部署新的内部应用程序以进行销售和客户预测。
Paychex 是使用 SQL 数据库弹性池的公司的良好示例。 Paychex 是一家人力资本管理公司,为美国和欧洲超过 65 万家企业提供服务。 Paychex 需要一种方法来为每个客户分别进行时间和支付管理并削减成本。 该公司选择了 SQL 数据库弹性池,允许它简化管理,并在单独的数据库之间启用资源共享,以降低成本。
Azure SQL 托管实例
Komatsu 是一家生产和销售重型建筑设备的制造公司。 该公司使用多个大型机应用程序来处理不同类型的数据。 Komatsu 希望合并这些应用程序以获取整体视图。 此外,Komatsu 还希望采用某种方法来减少开销。 由于该公司使用了大量 SQL Server 外围功能,因此 IT 决策者选择迁移到 Azure SQL 托管实例。 他们能够顺利移动大约 1.5 TB 的数据。 它们还获得了自动修补和版本更新、自动备份、高可用性和减少管理开销等优势。 迁移后,Komatsu 报告显示成本降低了约 49%,性能提升了约 25-30%。
Azure VM 上的 SQL Server
世界各地的公司使用 Azure VM 上的 SQL Server。 其中一个示例是 Allscripts。 Allscripts 是一家领先的医疗保健软件制造商,为医生、医院、健康计划和制药行业提供服务。 为了频繁地转换其应用程序并安全可靠地托管它们,Allscripts 想要快速迁移到 Azure。 在短短三周内,该公司就通过 Azure Site Recovery 将在大约 1,000 个 VM 上运行的数十个已购买的应用程序迁移到了 Azure 中。