你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

“超大规模”服务层级

适用于: Azure SQL 数据库

Azure SQL 数据库基于 SQL Server 数据库引擎体系结构,该体系结构已根据云环境做出调整,以确保即使在发生基础结构故障时,也仍能提供高可用性。 Azure SQL 数据库中使用了三种体系结构模型:

  • 常规用途/标准
  • 超大规模
  • 业务关键/高级

Azure SQL 数据库中的“超大规模”服务层级是基于 vCore 的购买模型中的最新服务层级。 此服务层级是一个高度可缩放的存储和计算性能层,它使用 Azure 体系结构来横向扩展 Azure SQL 数据库的存储和计算资源,远远超出了“常规用途”和“业务关键”服务层级的可用限制。

注意

  • 有关基于 vCore 的购买模型中的“常规用途”服务层级和“业务关键”服务层级的详细信息,请参阅常规用途服务层级和业务关键服务层级。 有关基于 vCore 购买模型与基于 DTU 购买模型的比较,请参阅 Azure SQL 数据库购买模型和资源
  • “超大规模”服务层级目前仅可用于 Azure SQL 数据库,不可用于 Azure SQL 托管实例。

“超大规模”服务层级具有哪些功能

Azure SQL 数据库中的“超大规模”服务层级提供了以下附加功能:

  • 支持高达 100 TB 的数据库大小。
  • 快速数据库备份(基于存储在 Azure Blob 存储中的文件快照),无论数据库大小,也不会对计算资源造成 IO 影响。
  • 在几分钟内快速完成数据库还原(基于文件快照),而不是数小时或数天(不基于数据操作的大小)。
  • 无论数据卷如何,由于更高的事务日志吞吐量和更快的事务提交速度,整体性能更高。
  • 快速横向扩展 - 可预配一个或多个只读副本,以减轻读取工作负载并将这些副本用作热备用服务器。
  • 快速纵向扩展 - 可在不变的时间内纵向扩展计算资源,以在需要时应对繁重的工作负载,然后在不需要时重新纵向缩减计算资源。

“超大规模”服务层级消除了传统上云数据库中出现的许多实际限制。 当大多数其他数据库受单个节点中可用资源的限制时,“超大规模”服务层级中的数据库则没有此类限制。 它具备灵活的存储体系结构,存储可按需增长。 实际上,不会使用定义的最大大小创建“超大规模”数据库。 “超大规模”数据库会按需扩大,你仅需为所使用的容量付费。 对于读取密集型工作负载,“超大规模”服务层级通过按需预配其他副本来减轻读取工作负载,从而实现快速横向扩展。

此外,创建数据库备份或纵向扩展/横向扩展所需的时间不再与数据库中的数据卷相关。 几乎可以即时备份“超大规模”数据库。 还可在几分钟内纵向扩展或横向扩展数十 TB 的数据库。 此功能使你无需担心受初始配置选项的约束。

有关“超大规模”服务层级计算大小的详细信息,请参阅服务层级特征

哪些群体应考虑使用“超大规模”服务层级

超大规模服务层级适用于需要更高性能和高可用性、快速备份和还原和/或快速存储和计算可伸缩性的所有客户。 这包括迁移到云以对其应用程序进行现代化的客户以及已经在 Azure SQL 数据库中使用其他服务层级的客户。 超大规模服务层级支持广泛的数据库工作负载(从纯 OLTP 到纯分析)。 它针对 OLTP 和混合事务与分析处理 (HTAP) 工作负载进行了优化。

重要

弹性池不支持“超大规模”服务层级。

“超大规模”定价模型

vCore 模型提供“超大规模”服务层级。 为了适应新的体系结构,它的定价模型与“常规用途”或“业务关键”服务层级略有不同:

  • 计算

    “超大规模”计算单位按副本计费。 Azure 混合权益价格自动应用于高可用性副本和命名副本。 用户可以根据可用性和可伸缩性要求,将高可用性辅助副本总数从 0 调整到 4,并且最多可创建 30 个命名副本来支持各种读取横向扩展工作负载。

  • 存储

    配置“超大规模”数据库时,无需指定最大数据大小。 超大规模层级中根据实际分配收取数据库存储费用。 存储将在 10 GB 和 100 TB 之间自动分配,并根据需要以 10 GB 的增量增长。

有关“超大规模”服务层级定价的详细信息,请参阅 Azure SQL 数据库定价

比较资源限制

根据下表中所述的数据库可用性、存储类型性能和最大存储大小区分基于 vCore 的服务层级:

常规用途 超大规模 业务关键
最适用于 提供以预算导向的、均衡的计算和存储选项。 大多数业务工作负荷。 自动缩放存储大小,最大可达 100 TB,快速的垂直和水平计算缩放,快速数据库还原。 事务率较高、IO 延迟较低的 OLTP 应用程序。 使用多个同步更新的副本提供最高故障复原能力和快速故障转移。
计算大小 1 - 80 个 vCore 1 到 80 个 vCore1 1 - 80 个 vCore
存储类型 高级远程存储(每个实例) 具有本地 SSD 缓存的分离的存储(每个实例) 超快的本地 SSD 存储(每个实例)
存储大小1 5 GB – 4 TB 最多 100 TB 5 GB – 4 TB
IOPS 每个 vCore 提供 500 IOPS,最大 7000 IOPS 超大规模是具有多个级别缓存的多层体系结构。 有效 IOPS 将取决于工作负荷。 5000 IOPS,最大 200,000 IOPS
可用性 1 个副本,没有读取扩展,区域冗余 HA(预览版),没有本地存储 多个副本、最多 4 个读取扩展、区域冗余 HA、部分本地缓存 3 个副本,1 个读取扩展,区域冗余 HA,完整的本地存储
备份 选择异地冗余、区域冗余或本地冗余备份存储,1 到 35 天保留期(默认为 7 天) 选择异地冗余、区域冗余或本地冗余备份存储,1 到 35 天保留期(默认为 7 天) 选择异地冗余、区域冗余或本地冗余备份存储,1 到 35 天保留期(默认为 7 天)

1 “超大规模”服务层级不支持弹性池。

注意

超大规模数据库的 1-35 天短期备份保留目前仅提供预览版。

分布式功能体系结构

超大规模将查询处理引擎与为数据提供长期存储和持久性的组件分隔开来。 这种体系结构提供了按需顺利扩展存储容量的能力(初始目标为 100 TB),以及快速扩展计算资源的能力。

下图说明了“超大规模”数据库中不同类型的节点:

体系结构

详细了解超大规模分布式功能体系结构

缩放和性能优势

超大规模体系结构能快速启动/关闭其他只读计算节点,拥有重要的读取扩展功能,还可以释放主计算节点,以满足更多写入请求。 此外,由于超大规模体系结构的共享存储体系结构,可快速纵向扩展/横向扩展计算节点。

创建和管理超大规模数据库

可以使用 Azure 门户、Transact-SQL、PowerShell 和 Azure CLI 创建和管理超大规模数据库。 请参阅快速入门:创建超大规模数据库

操作 详细信息 了解详细信息
创建“超大规模”数据库 仅可通过基于 vCore 的购买模型使用超大规模数据库。 快速入门:在 Azure SQL 数据库中创建超大规模数据库中查找用于创建超大规模数据库的示例。
将现有数据库升级到超大规模 将 Azure SQL 数据库中的现有数据库迁移到“超大规模”层级是与数据大小相关的操作。 了解如何将现有数据库迁移到超大规模
将超大规模数据库反向迁移到“常规用途”服务层级(预览版) 如果先前已将现有的 Azure SQL 数据库迁移到“超大规模”服务层级,可以在最初迁移到“超大规模”服务层级后的 45 天内,将数据库反向迁移到“常规用途”服务层级。

如果要将数据库迁移到另一个服务层级(例如“业务关键”),请先反向迁移到“常规用途”服务层级,然后更改服务层级。
了解如何从超大规模反向迁移,包括反向迁移的限制

“超大规模”中的数据库高可用性

与所有其他服务层级一样,“超大规模”保证已提交事务的数据持久性,而不管计算副本的可用性如何。 由于主要副本不可用而导致的停机时间取决于故障转移的类型(计划内或计划外),是否配置区域冗余,以及是否至少存在一个高可用性副本。 在计划内故障转移(例如维护事件)中,系统将在启动故障转移之前创建新的主要副本,或使用现有的高可用性副本作为故障转移目标。 在计划外故障转移(例如,主要副本发生硬件故障)中,系统使用高可用性副本(如果存在)作为故障转移目标,或者在可用计算容量池中创建新的主要副本。 对于后一种情况,停机持续时间更长,因为需要执行额外的步骤来创建新的主要副本。

有关“超大规模”SLA,请参阅 Azure SQL 数据库的 SLA

备份和还原

超大规模数据库的备份和还原操作是基于文件快照的。 这使这些操作几乎可以即时完成。 由于超大规模体系结构利用存储层进行备份和还原,因此可显著减轻对计算副本的处理负担和性能影响。 有关详细信息,请参阅超大规模备份和存储冗余

超大规模数据库的灾难恢复

如果在执行灾难恢复操作或演练、重新定位期间或者出于任何其他原因,需要将 Azure SQL 数据库中的某个超大规模数据库还原到其他位置(而不是其当前所在位置),主要方法是执行数据库的异地还原。 只有在为存储冗余选择了异地冗余存储 (RA-GRS) 时,异地还原才可用。

有关详细信息,请参阅将超大规模数据库还原到其他区域.

已知的限制

下面是“超大规模”服务层级的当前限制。 我们正在尽一切努力消除其中的许多限制。

问题 说明
短期备份保留 超大规模数据库的 1-35 天短期备份保留目前仅提供预览版。 无法将非超大规模数据库还原到超大规模数据库,也无法将超大规模数据库还原到非超大规模数据库。

对于从其他 Azure SQL 数据库服务层级迁移到超大规模的数据库,预迁移备份(包括长期备份策略)会在源数据库的备份保持期持续时间内保留。 通过命令行支持在数据库的备份保持期内恢复迁移前备份。 可以将这些备份还原到任何非超大规模服务层级。
长期备份保留 超大规模数据库的长期备份保留功能现已推出预览版。
在某些方案中,支持将服务层级直接从超大规模更改为常规用途层 如果超大规模无法满足他们的需求,从超大规模进行的反向迁移支持最近将现有 Azure SQL 数据库迁移到超大规模服务层级的客户转移到常规用途层。 虽然反向迁移是由服务层级更改发起的,但它本质上是不同体系结构之间的数据规模的移动。 在“超大规模”服务层级中创建的数据库不符合反向迁移的条件。 了解反向迁移的限制

对于不符合反向迁移条件的数据库,从“超大规模”迁移到非“超大规模”服务层级的唯一方法是,使用 bacpac 文件或其他数据移动技术(大容量复制、Azure 数据工厂、Azure Databricks、SSIS 等)进行导出/导入。不支持从 Azure 门户、PowerShell(使用 New-AzSqlDatabaseExportNew-AzSqlDatabaseImport)、Azure CLI(使用 az sql db exportaz sql db import)以及从 REST API 进行 bacpac 导出/导入。 支持使用 SSMS 和 SqlPackage 版本 18.4 及更高版本对较小的超大规模数据库(最多 200 GB)进行 bacpac 导入/导出。 对于较大的数据库,bacpac 导出/导入可能需要很长时间,并且可能会因各种原因失败。
弹性池 超大规模目前不支持弹性池。
迁移包含内存中 OLTP 对象的数据库 超大规模支持内存中 OLTP 对象的子集,包括内存优化表类型、表变量和本机编译模块。 但是,如果要迁移的数据库中存在任何内存中 OLTP 对象,则不支持从“高级”和“业务关键”服务层级迁移到“超大规模”。 若要将此类数据库迁移到“超大规模”,必须删除所有内存中 OLTP 对象及其依赖项。 迁移数据库之后,可以重新创建这些对象。 “超大规模”目前不支持持久的和非持久的内存优化表,必须将这些表更改为为磁盘表。
收缩数据库 超大规模数据库目前不支持 DBCC SHRINKDATABASE、DBCC SHRINKFILE 或在数据库级别将 AUTO_SHRINK 设置为 ON。
数据库完整性检查 “超大规模”数据库目前不支持 DBCC CHECKDB。 DBCC CHECKTABLE ('TableName') WITH TABLOCK 和 DBCC CHECKFILEGROUP WITH TABLOCK 可以用作解决方法。 有关 Azure SQL 数据库中数据完整性管理的详细信息,请参阅 Azure SQL 数据库中的数据完整性
弹性作业 不支持使用超大规模数据库作为作业数据库。 但是,弹性作业可将超大规模数据库用作目标,就如同将 Azure SQL 数据库中的任何其他数据库用作目标一样。
数据同步 不支持将超大规模数据库用作中心或同步元数据数据库。 但是,超大规模数据库可以是数据同步拓扑中的成员数据库。

后续步骤

通过以下文章详细了解 Azure SQL 数据库中的超大规模: