了解超大规模 SQL 数据库

已完成

多年来,Azure SQL 数据库每个数据库的存储量一直限制为 4 TB。 这种限制是由于 Azure 基础结构的物理限制。 Azure SQL 数据库超大规模更改了这一范式,允许数据库为 100 TB 或更大的值。 随着数据大小的增长,超大规模引入了新的水平缩放技术来添加计算节点。 超大规模的成本与 Azure SQL 数据库的成本相同;但是,存储存在每 TB 的成本。 请注意,一旦 Azure SQL 数据库转换为超大规模,你就无法将其转换回“常规”Azure SQL 数据库。 超大规模是体系结构根据需要适当缩放的能力。

超大规模 Azure SQL 数据库是大多数业务工作负负载的理想选择,因为它通过可单独缩放的计算和存储资源提供极大的灵活性和高性能。

超大规模将查询处理引擎(其中各种数据引擎的语义不同)与为数据提供长期存储和持久性的组件分隔开来。 通过这种方式,可根据需要顺利地扩大存储容量。

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

好处

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

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

“超大规模”根据工作负荷需求,提供快速的可伸缩性。

  • 纵向扩展/缩减:使用超大规模数据库,可以纵向扩展按 CPU、内存等资源来衡量的主要计算大小,然后在恒定的时间内将其减少。 由于存储是共享的,因此纵向扩展和缩减与数据库中的数据量无关。

  • 横向扩展/缩减:借助超大规模数据库,还能够预配一个或多个计算副本,可用于为读取请求提供服务。 这意味着,可以将这些额外的计算副本用作只读副本,从主计算卸载读取工作负载。 这些副本除用作只读副本外,在主计算发生故障转移时,还充当热备用节点。

对每个额外的计算副本的预配可在恒定时间内完成,并且是联机操作。 通过将连接字符串上的 ApplicationIntent 参数设置为 ReadOnly,可连接到只读计算副本。 具有 ReadOnly 应用程序意向的任何连接均自动路由到某个只读计算副本。

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

Hyperscale Architecture

安全注意事项

超大规模服务层的安全性与其他 Azure SQL 数据库层具有相同的强大功能。 它们都采用分层的深层防御方法进行保护(如下图所示),并从外向内移动:

Hyperscale security

  • “网络安全”是第一层防御,它使用 IP 防火墙规则允许基于原始 IP 地址进行访问,并使用虚拟网络防火墙规则允许接受从虚拟网络内所选子网发送的通信。

  • “访问管理”通过以下身份验证方法提供,以确保用户是它们声称的用户:

    • SQL 身份验证
    • Microsoft Entra 身份验证
    • Microsoft Entra 主体的 Windows 身份验证(预览版)

    超大规模 Azure SQL 数据库还支持行级别安全性。 行级别安全性使客户可以基于执行查询的用户的特性(例如,组成员身份或执行上下文)来控制对数据库表进行的访问。

    Row-Level Security

  • 审核和威胁检测功能中的“威胁防护”功能。 SQL 数据库和 SQL 托管实例审核可跟踪数据库活动,通过将数据库事件记录到客户所有的 Azure 存储帐户中的审核日志,帮助用户保持符合安全标准。 可以为每台服务器启用高级威胁防护,但需要支付额外费用,并分析日志以检测异常行为和访问或利用数据库的潜在有害尝试。 针对可疑活动(例如 SQL注入、潜在的数据渗透和暴力攻击)或访问模式中的异常情况创建警报,以捕获特权提升和违规的凭据使用。

  • “信息保护”通过以下方式提供:

    • 传输层安全性(传输中加密)
    • 透明数据加密(静态加密)
    • 使用 Azure Key Vault 的密钥管理
    • Always Encrypted(使用中加密)
    • 动态数据屏蔽

性能注意事项

“超大规模”服务层级面向拥有大型本地 SQL Server 数据库并希望通过迁移到云来实现应用程序现代化的客户,或已使用 Azure SQL 数据库并且想大大拓展数据库增长可能性的客户。 “超大规模”服务层级也适用于那些寻求高性能和高可伸缩性的客户。

超大规模提供以下性能功能:

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

注意

超大规模 SQL 数据库不支持以下功能:

  • SQL 托管实例
  • 弹性池
  • 异地复制
  • 查询性能见解

部署超大规模 Azure SQL 数据库

部署具有超大规模服务层的 Azure SQL 数据库:

  1. 浏览到“选择 SQL 部署”选项页。

  2. 在“SQL 数据库”下将“资源类型”设置保留为“单一数据库”,然后选择“创建” 。

    Deploying an Azure SQL Database Hyperscale

  3. 从“创建 SQL 数据库”页的“基本”选项卡中,选择所需的订阅、资源组和数据库名称。

  4. 对于“服务器”,选择“新建”链接,并填写新服务器信息,例如服务器名称、服务器管理员登录名和密码以及位置。

  5. 在“计算 + 存储”下选择“配置数据库”链接。

    Configuring an Azure SQL Database Hyperscale

  6. 对于“服务层级”,请选择“超大规模”。

    Selecting Hyperscale service tier

  7. 在“硬件配置”下,选择“更改配置”链接。 查看可用的硬件配置,并选择最合适你数据库的配置。 对于本示例,我们将选择“第 5 代”配置。

  8. 选择“确定”以确认硬件代系。

  9. (可选)如果要增加数据库的 vCore 数,请调节“vCore”滑块。 对于本示例,我们将选择“2 个 vCore”。

  10. 调节“高可用性辅助副本”滑块以创建一个高可用性 (HA) 副本。 选择“应用”。

  11. 在完成时选择“下一步:网络”。

    Network page when provisioning an Azure SQL Database Hyperscale

  12. 对于“网络”选项卡上的“防火墙规则”,将“添加当前客户端 IP 地址”设置为“是”。 将“允许 Azure 服务和资源访问此服务器”设置保留为“否” 。

  13. 在页面底部选择“下一步: 安全”。

  14. 在“查看 + 创建”选项卡上,选择“创建”。

    Review and create page when provisioning an Azure SQL Database Hyperscale