介绍在 Azure 中部署 SQL Server 的 PaaS 选项

已完成

平台即服务 (PaaS) 在云中提供完整的开发和部署环境,可用于简单的基于云的应用程序以及高级企业应用程序。

Azure SQL 数据库和 Azure SQL 托管实例是 Azure SQL 的 PaaS 产品/服务的一部分。

  • Azure SQL 数据库:云中基于 SQL Server 引擎构建的产品系列的一部分。 它为开发人员提供了构建新应用程序服务的极大灵活性,以及大规模的精细部署选项。 SQL 数据库提供了一种低维护解决方案,是某些工作负载的不错选择。

  • Azure SQL 托管实例:它提供了完全托管的服务和功能,因此最适合大多数迁移到云的方案。

Platform Management for PaaS Solutions

如上图所示,根据成本效益的程度,每个产品/服务都提供了对基础结构一定程度的管理。

部署模型

Azure SQL 数据库提供了两种不同的部署模型:

  • 单一数据库:在每个数据库级别计费和管理的单一数据库。 你可从规模和数据大小角度单独管理每个数据库。 此模型中部署的每个数据库都有自己的专用资源,即使都部署到同一逻辑服务器。

  • 弹性池:一组共同管理并共享一组常见资源的数据库。 弹性池为服务型软件应用模型提供了经济高效的解决方案,因为资源在所有数据库之间共享。 可以根据基于 DTU 的购买模型或基于 vCore 的购买模型配置资源。

购买模型

在 Azure 中,所有服务都由物理硬件提供支持,你可以从两种不同的购买模型中进行选择:

数据库事务单位 (DTU)

DTU 是根据计算、存储和 I/O 资源相结合的公式来计算的。 对于需要简单的预配置资源选项的客户来说,这是一个不错的选择。

DTU 购买模型具有多种不同的服务层级,例如基本层、标准层和高级层。 每个层级都具有不同的功能,这些功能在选择此平台时提供广泛的选项。

在性能方面,基本层用于要求不高的工作负载,而高级层用于满足密集型工作负载需求。

计算和存储资源依赖于 DTU 级别,并以固定存储限制、备份保留期和成本提供一系列性能功能。

注意

仅 Azure SQL 数据库支持 DTU 购买模型。

有关 DTU 购买模型的详细信息,请参阅基于 DTU 的购买模型概述

vCore

通过 vCore 模型,你可以根据给定的工作负载购买指定数量的 vCore。 vCore 是购买 Azure SQL 数据库资源时的默认购买模型。 vCore 数据库在核心数与提供给数据库的内存和存储量之间具有特定关系。 Azure SQL 数据库和 Azure SQL 托管实例均支持 vCore 购买模型。

你也可以在三种不同的服务层级中购买 vCore 数据库:

  • 常规用途:此层用于常规用途工作负载。 它由 Azure 高级存储支持。 它的延迟高于业务关键。 它还提供以下计算层级:

    • 已预配:计算资源已预先分配。 基于配置的 vCore 按小时计费。
    • 无服务器:计算资源已自动缩放。 基于使用的 vCore 的每秒计费。
  • 业务关键:此层适用于提供两个服务层级中任意一个最低延迟的高性能工作负载。 此层由本地 SSD(而不是 Azure Blob 存储)支持。 它还提供了对故障的最高复原能力,并提供了一个内置的只读数据库副本,可用于卸载报告工作负载。

  • 超大规模:超大规模数据库的扩展可以远远超出其他 Azure SQL 数据库提供的 4 TB 限制,并具有支持高达 100 TB 的数据库的独特体系结构。

无服务器

名称“无服务器”可能有点混乱,因为你仍然将 Azure SQL 数据库部署到你连接到的逻辑服务器。 Azure SQL 数据库无服务器是一个计算层,将根据工作负载需求自动纵向扩展或缩减给定数据库的资源。 如果工作负载不再需要计算资源,数据库将变为“已暂停”,并且在数据库处于活动状态期间仅收取存储费用。 当尝试连接时,数据库将“恢复”并可用。

Serverless usage example for Azure SQL Database

控制暂停的设置称为自动暂停延迟,最小值为 60 分钟,最大值为 7 天。 如果数据库在这段时间内处于空闲状态,则会暂停。

一旦数据库在指定时间内处于非活动状态,它就将暂停,直到尝试后续连接。 配置计算自动缩放范围和自动暂停延迟会影响数据库的性能和计算成本。

应配置使用无服务器的任何应用程序来处理连接错误并包含重试逻辑,因为连接到已暂停的数据库将产生连接错误。

Azure SQL 数据库的无服务器和正常 vCore 模型之间的另一个区别是,通过无服务器,你可以指定最小和最大数量的 vCore。 内存和 I/O 限制与指定的范围成正比。

The Azure SQL Database Serverless Settings in the Azure portal

上图显示了 Azure 门户中无服务器数据库的配置屏幕。 你可以选择最少少至一半的 vCore 和最多多达 16 个 vCore 的选项。

无服务器与 Azure SQL 数据库中的所有功能并不完全兼容,因为其中一些功能需要后台进程始终运行,例如:

  • 异地复制
  • 长期备份保留
  • 弹性作业中的作业数据库
  • SQL 数据同步中的同步数据库(数据同步是复制一组数据库之间的数据的服务)

注意

目前,仅 vCore 购买模型中的常规用途层支持 SQL 数据库无服务器。

备份

备份是平台即服务产品/服务最重要的功能之一。 在这种情况下,备份会自动执行,而无需你进行任何干预。 备份存储在 Azure Blob 地理冗余存储中,默认情况下,根据数据库的服务层级保留 7 到 35 天。 基础数据库和 vCore 数据库的保留时间为 7 天,在 vCore 数据库中,管理员可以调整此值。 可通过配置长期保留 (LTR) 来延长保留时间,采用此配置可保留备份长达 10 年。

为了提供冗余,你还可以使用可读取的地理冗余 Blob 存储。 这种存储将数据库备份复制到你首选的次要区域。 如果需要,还可以从次要区域进行读取。 不支持手动备份数据库,平台将拒绝任何执行此操作的任何请求。

数据库备份按给定计划创建:

  • 完整备份:每周一次
  • 差异备份:每 12 小时一次
  • 日志备份:每 5-10 分钟一次,具体取决于事务日志活动

此备份计划应满足大多数恢复点/时间目标 (RPO/RTO) 的需求,但每个客户应评估它们是否满足你的业务要求。

有多种选项可用于还原数据库。 由于平台即服务的性质,你无法使用传统方法手动还原数据库,例如发出 T-SQL 命令 RESTORE DATABASE

无论实现哪种还原方法,都无法通过现有数据库进行还原。 如果需要还原数据库,则必须在启动还原过程之前删除或重命名现有数据库。 此外,请记住,根据平台服务层级,还原时间无法得到保证并且可能出现波动。 建议你测试还原过程,以获得有关还原可能需要多长时间的基线指标。

可用的还原选项包括:

  • 使用 Azure 门户进行还原:使用 Azure 门户,你可以选择将数据库还原到相同的 Azure SQL 数据库服务器,或者你可以使用还原在任何 Azure 区域的新服务器上创建新数据库。

  • 使用脚本语言进行还原:PowerShell 和 Azure CLI 都可用于还原数据库。

注意

Azure Blob 存储的仅复制备份可用于 SQL 托管实例。 SQL 数据库不支持此功能。

有关自动备份的信息,请参阅自动备份 - Azure SQL 数据库和 Azure SQL 托管实例

活动异地复制

异地复制是一种业务连续性功能,可将数据库异步复制到最多四个次要副本。 当事务提交到主副本(及其同一区域内的副本)时,事务将发送到次要副本进行重播。 由于此通信是异步完成的,因此调用应用程序不必等待次要副本在 SQL Server 将控制权还给调用方之前提交事务。

辅助数据库是可读的,可用于卸载只读工作负载,从而腾出资源用于主数据库上的事务性工作负载,或将数据放置在更接近最终用户的位置。 此外,辅助数据库可以与主数据库处于同一区域,或另一个 Azure 区域。

通过异地复制,你可以由用户手动或从应用程序启动故障转移。 如果发生故障转移,则可能需要更新应用程序连接字符串以反映当前主数据库的新终结点。

故障转移组

故障转移组建立在异地复制中使用的技术之上,但为连接提供了一个终结点。 使用故障转移组的主要原因是该技术提供了终结点,可用于将流量路由到适当的副本。 然后,应用程序可以在故障转移后进行连接,而无需更改连接字符串。