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

什么是 Azure SQL 数据库?

适用于:Azure SQL 数据库

本文概述 Azure SQL 数据库,它是一个完全托管的平台即服务 (PaaS) 数据库引擎,可在无需用户参与的情况下处理大多数数据库管理功能,如升级、修补、备份和监视。

注意

免费试用 Azure SQL 数据库,每月获取 100,000 vCore 秒的无服务器计算和 32 GB 的存储空间。

概述

Azure SQL 数据库始终运行在最新稳定版 SQL Server 数据库引擎和具有 99.99% 可用性的已修补 OS 之上。 使用 Azure SQL 数据库中内置的 PaaS 功能,你可以专注于对业务至关重要的特定于域的数据库管理和优化活动。 使用 Azure SQL 数据库,可以为 Azure 中的应用程序和解决方案创建高度可用且高性能的数据存储层。 SQL 数据库可成为各种新式云应用程序的正确选择,因为它可处理关系数据和非关系结构(例如图形、JSON、空间和 XML)。

Azure SQL 数据库是基于 Microsoft SQL Server 数据库引擎的最新稳定版本。 你可以使用高级查询处理功能集,例如高性能内存中技术智能查询处理。 事实上,SQL Server 的最新功能会先发布到 Azure SQL 数据库,然后再发布到 SQL Server 本身。 无需投入任何修补或升级开销,即可获得 SQL Server 的最新功能,这些功能已在数百万个数据库中进行测试。

使用 SQL 数据库可在以下两个不同的购买模型中轻松定义和缩放性能:基于 vCore 的购买模型基于 DTU 的购买模型。 SQL 数据库是完全托管型服务,提供内置的可用性、备份和其他常见维护操作。 Microsoft 可以处理 SQL 和操作系统代码的所有修补与更新。 你无需管理底层基础结构。

如果你不熟悉 Azure SQL 数据库,请观看我们深度讲解的 Azure SQL 视频系列中的“Azure SQL 数据库概述”视频:

购买模型

SQL 数据库提供以下购买模型:

  • 基于 vCore 的购买模型允许选择 vCore 数、内存容量,以及存储的容量和速度。 基于 vCore 的购买模型还允许使用适用于 SQL Server 的 Azure 混合权益,通过利用现有 SQL Server 许可证来节省成本。
  • 基于 DTU 的购买模型在以下三个服务层级中提供包括计算、内存和 I/O 资源在内的各种内容,以支持轻型到重型数据库工作负荷。 每个层级中的不同计算大小提供这些资源的不同组合,你可以向其添加更多的存储资源。

服务层

基于 vCore 的购买模型提供三个服务层级:

  • 常规用途服务层级设计用于常见工作负荷。 它提供以预算导向的、均衡的计算和存储选项。
  • 业务关键服务层级设计用于具有高事务率、低 I/O 延迟要求的 OLTP 应用程序。 它使用多个独立副本,提供最高级别的故障恢复能力。
  • 超大规模服务层级设计用于大多数业务工作负荷。 “超大规模”通过可单独缩放的计算和存储资源提供极大的灵活性和高性能。 它通过允许配置多个独立数据库副本来提供更高的失败后复原能力。

基于 DTU 的购买模型提供两个服务层级:

  • 标准服务层级设计用于常见工作负荷。 它提供以预算导向的、均衡的计算和存储选项。
  • 高级服务层级设计用于具有高事务率、低 I/O 延迟要求的 OLTP 应用程序。 它使用多个独立副本,提供最高级别的故障恢复能力。

计算层级

基于 vCore 的购买模型为 Azure SQL 数据库提供两个不同的计算层级 - 预配计算层级和无服务器计算层级。 基于 DTU 的购买模型仅提供预配计算层级。

  • 预配计算层级提供特定数量的计算资源,这些资源是独立于工作负荷活动持续预配的,针对预配的计算资源量按固定的小时价格计费。
  • 无服务器计算层级根据工作负荷活动自动缩放计算资源,针对使用的计算资源量按秒计费。 无服务器计算层级现已在常规用途服务层级以及超大规模服务层级正式发布。

部署模型

Azure SQL 数据库提供下述适用于数据库的部署选项:

  • 单一数据库表示完全托管的独立数据库。 对于需要单个可靠数据源的新式云应用程序和微服务,可以使用此选项。 单一数据库类似于 SQL Server 数据库引擎包含的数据库
  • 弹性池是单一数据库的集合,其中包含一组共享的资源(例如 CPU 或内存)。 可以将单一数据库移入或移出弹性池。

重要

若要了解 SQL 数据库、SQL Server 与 Azure SQL 托管实例之间的功能差异,以及不同 Azure SQL 数据库选项之间的区别,请参阅 SQL 数据库功能

SQL 数据库通过多个资源类型、服务层级和计算大小提供可预测的性能。 它提供无需停机的动态缩放、内置智能优化、全局可伸缩性和可用性,以及高级安全选项。 凭借这些功能,你可将注意力集中在如何快速进行应用开发和加快推向市场方面,而无需管理虚拟机和基础结构。 SQL 数据库目前在世界各地有 38 个数据中心,因此你可以在附近的数据中心运行数据库。

可缩放的性能和池

可以定义分配的资源量。

  • 使用单一数据库,每个数据库相互隔离且可移植。 每个数据库都有自身有保证的计算、内存和存储资源量。 分配给数据库的资源量专门用于该数据库,而不会与 Azure 中的其他数据库共享。 可以动态扩展和缩减单一数据库资源。 单一数据库提供不同的计算、内存和存储资源来满足不同的需求。 例如,你可以获得 1 到 128 个 vCore,或 32 GB 到 4 TB 的存储。 借助“超大规模”服务层级,可以通过快速备份和还原功能纵向扩展到 128 TB。
  • 使用弹性池可以分配池中所有数据库共享的资源。 可以新建数据库,或者将现有单一数据库移到资源池中,以最大限度地使用资源和节省资金。 此选项还可让你动态扩展和缩减弹性池资源

可以在小型单一数据库中生成你的第一个应用,每个月只需在常规用途服务层级中花费少量资金。 然后可以根据解决方案的需要,随时以手动或编程方式将服务层级更改为业务关键超大规模服务层级。 可在不给应用或客户造成停机的情况下调整性能。 动态缩放使得数据库能够以透明方式对不断变化的资源需求做出响应。 只需在需要资源时为需要的资源付费。

动态缩放不同于自动缩放。 自动缩放是指服务根据条件自动缩放,而动缩放允许在无停机时间的情况下进行手动缩放。 单一数据库选项支持手动动态缩放,但不支持自动缩放。 若要获得更多自动体验,请考虑以下替代方法:

观看 Azure SQL 数据库 Essentials 系列中的此视频,大致了解如何缩放数据库:

弹性池可以最大化资源利用率

许多业务和应用程序只要能够创建单一数据库并按需调高或调低性能即可,尤其是当使用模式相对容易预测时。 无法预测的使用模式可能会使成本管理和业务模式变得困难。 弹性池旨在解决此问题。 可以向池而不是单个数据库分配性能资源。 只需为池的总体性能资源付费,而无需为单一数据库性能付费。

显示基本、标准和高级版中的弹性池的关系图。

使用弹性池时,不需要在资源需求波动时担心如何上下调节数据库性能。 共用数据库可根据需要使用弹性池的性能资源。 共用数据库会使用该池,但不会超出其限制,因此即使单个数据库的使用情况仍不可预测,成本也仍是可预测的。

可以向池添加和删除数据库,将应用从少量数据库扩展到数千个,而一切费用不会超出所控制的预算范围。 还可以控制池中数据库可用的资源量上限与下限,确保池中不会有任何数据库使用所有的池资源,每个共用数据库的可用资源量都有最低保障。 若要详细了解使用弹性池的软件即服务 (SaaS) 应用程序的设计模式,请参阅使用 SQL 数据库的多租户 SaaS 应用程序的设计模式

脚本可以帮助监视和缩放弹性池。 有关示例,请参阅在 Azure SQL 数据库中使用 PowerShell 监视和缩放弹性池

将单一数据库与共用数据库混合使用

可将单一数据库与弹性池混合使用,并更改单一数据库和弹性池的服务层级来适应自己的情况。 还可将其他 Azure 服务与 SQL 数据库搭配使用以满足独特的应用设计需求,提高成本和资源效益,发掘新的商机。

集中监视和警报功能

Azure SQL 数据库提供高级监视和故障排除功能,可帮助你更深入了解工作负荷的特征。 这些功能和工具包括:

  • SQL Server 数据库引擎的最新版本提供内置监视功能。 它们可让你找到实时性能见解。
  • Azure 提供的 PaaS 监视功能,可让你监视大量的数据库实例并对其进行故障排除。
  • 数据库观察程序(预览版)可实现深度、低延迟的当前和历史监视,并提供 Azure SQL 资产的单窗格视图。

查询存储 - 内置的 SQL Server 监视功能,它可以实时记录查询性能,并使你能够识别潜在的性能问题和排名靠前的资源使用者。 自动优化和建议提供的建议涉及查询性能退化以及索引缺失或重复的问题。 使用 Azure SQL 数据库中的自动优化可以手动应用脚本来解决问题,或者让 Azure SQL 数据库应用修复措施。 SQL 数据库还可以测试并验证该修复措施是否起了作用,并根据结果保留或还原更改。 除了查询存储和自动优化功能外,还可以使用标准的 DMV 和 XEvent 来监视工作负荷性能。

通过使用 SQL 数据库的内置性能监视警报功能,可以有效地监视数千个数据库的状态。 使用这些工具,可以根据当前的或预计的性能需求,快速评估纵向扩展或纵向缩减产生的影响。 此外,SQL 数据库可发出指标和资源日志,以便于监视。 可配置 SQL 数据库,将资源使用情况、辅助角色和会话以及连接性存储到以下 Azure 资源之一:

  • Azure 存储:以较低的价格存档大量的遥测数据。
  • Azure 事件中心:用于将 SQL 数据库遥测与自定义监视解决方案或热门管道集成。
  • Azure Monitor 日志:用于具有报告、警报和缓解功能的内置监视解决方案。

Azure 监视体系结构关系图。

可用性功能

Azure SQL 数据库使你的企业可以在中断期间继续运营。 在传统的 SQL Server 环境中,通常需要在本地设置至少两台计算机。 这些计算机包含确切数目的、以同步方式维护的数据副本,以便在单个计算机或组件出现故障时提供保护。 此环境提供高可用性,但在发生损毁数据中心的自然灾难时无法提供保护。

灾难恢复假设灾难性事件在局部地区发生,而远地部署了另一个包含数据副本的计算机或计算机组。 在 SQL Server 中,可以使用以异步模式运行的 Always On 可用性组来获取此功能。 人们通常不想等到远端复制完成后再提交事务,因此,在执行计划外故障转移时可能会丢失数据。

高级和业务关键服务层级中的数据库已执行与可用性组同步类似的操作。 较低服务层级中的数据库使用不同但等效的机制通过存储提供冗余。 内置逻辑可帮助防范单个计算机发生故障。 活动异地复制功能可保护数据库免受区域范围的广泛中断的影响。

在单个区域中的单个数据中心建筑物发生服务中断时,Azure 可用性区域会尝试提供保护。 它有助于防止建筑物中发生断电或网络中断。 在 SQL 数据库中,可将不同的副本放在不同的可用性区域(其实是不同的建筑物)中。

事实上,Azure 的服务级别协议 (SLA)(由 Microsoft 所管理的数据中心的全球网络提供支持)有助于保持应用全天候运行。 Azure 平台完全管理每个数据库,并保证不会丢失数据并实现高百分比数据可用性。 Azure 会自动处理修补、备份、复制、故障检测;基础的潜在硬件、软件或网络故障;部署 bug 修复、故障转移、数据库升级和其他维护任务。 标准可用性是通过将计算层与存储层相隔离来实现的。 高级可用性的实现方式是将计算和存储层集成到单个节点以提高性能,然后实施类似于 Always On 可用性组的技术。 有关 Azure SQL 数据库的高可用性功能的完整讨论,请参阅 SQL 数据库可用性

此外,SQL 数据库还提供内置业务连续性和全局可伸缩性功能。 其中包括:

  • 自动备份

    SQL 数据库自动执行数据库的完整备份、差异备份和事务日志备份,以便能够还原到任何时间点。 对于单一数据库和共用数据库,可以将 SQL 数据库配置为,将完整数据库备份存储到 Azure 存储,以供长期备份保留。 对于托管实例,还可以执行仅复制备份,以供长期备份保留。

  • 时间点还原

    所有 SQL 数据库部署选项都支持恢复到任何数据库的自动备份保留期内的任何时间点。

  • 活动异地复制

    使用单一数据库和共用数据库选项,可以在同一或全球分布式 Azure 数据中心内配置至多 4 个可读辅助数据库。 例如,如果有一个 SaaS 应用程序,其中的目录数据库包含大量并发只读事务,请使用活动异地复制来启用全局读取缩放并删除主数据库上因读取工作负荷产生的瓶颈。

  • 故障转移组

    所有 SQL 数据库部署选项允许使用故障转移组实现全局规模的高可用性和负载均衡。 故障转移组允许对大型数据库和弹性池进行透明的异地复制和故障转移。 使用故障转移组可以最小的管理开销创建全局分布式 SaaS 应用程序。 这会将所有复杂的监视、路由和故障转移业务流程都留给 SQL 数据库来处理。

  • 区域冗余的数据库

    可以通过 SQL 数据库跨多个可用性区域预配高级数据库或业务关键型数据库或者弹性池。 由于这些数据库和弹性池具有多个可实现高可用性的冗余副本,将这些副本置于多个可用性区域能够提高复原能力。 这包括能够在发生数据中心规模的故障后自动予以恢复,且不会丢失数据。

内置智能

使用 SQL 数据库,可获得内置智能,帮助大幅降低运行和管理数据库的成本,并将应用程序的性能和安全性最大化。 SQL 数据库平台收集和处理大量遥测数据,同时充分尊重客户隐私。 各种算法正在不间断计算遥测数据,以便服务可以了解并适应应用程序。

自动性能监视和优化

SQL 数据库提供针对需要监视的查询的详细见解。 SQL 数据库会学习用户的数据库模式,使用户能够根据工作负荷调整数据库架构。 SQL 数据库提供性能优化建议,可在其中查看并应用优化操作。

可能无法高效管理大量数据库,即使使用 SQL 数据库和 Azure 提供的所有可用工具和报告也一样。 可考虑使用自动优化将某些监视和优化操作委派给 SQL 数据库,而不是手动监视和优化数据库。 SQL 数据库自动应用建议、测试,并验证每个优化操作,确保性能持续提升。 这样一来,SQL 数据库将以受控且安全的方式自动适应工作负荷。 自动优化是指在每次优化操作前后仔细监视和比较数据库性能。 如果性能未得到提升,则还原优化操作。

在 SQL 数据库基础上运行 SaaS 多租户应用的许多合作伙伴均依赖于自动性能优化,确保其应用程序始终具有稳定且可预测的性能。 对他们而言,此功能可大大降低午夜出现性能事故的风险。 此外,由于部分客户群也使用 SQL Server,因此他们会使用 SQL 数据库提供的相同索引建议来帮助 SQL Sever 客户。

SQL 数据库中有两个自动优化方面:

  • 自动索引管理:标识应在数据库中添加的索引以及应删除的索引。
  • 自动计划更正:识别有问题的计划并修复 SQL 计划性能问题。

自适应查询处理

可以使用自适应查询处理,包括交错执行多语句表值函数,批处理模式内存授予反馈和批处理模式自适应联接。 每个自适应查询处理功能均应用类似的“学习和适应”技巧,帮助进一步解决与历史上棘手的查询优化问题相关的性能问题。

高级安全性和符合性

SQL 数据库提供一系列内置安全性和符合性功能,帮助应用程序满足各种安全性和符合性要求。

重要

Microsoft 已根据许多合规性标准认证了 Azure SQL 数据库(所有部署选项)。 有关详细信息,请参阅 Microsoft Azure 信任中心,从中找出 SQL 数据库法规认证的最新列表。

高级威胁防护

Microsoft Defender for SQL 是高级 SQL 安全功能的统一包。 它包括管理数据库漏洞以及检测可能对数据库造成威胁的异常活动的功能。 它提供用于启用和管理这些功能的一个位置。

  • 漏洞评估

    此服务可以发现、跟踪和帮助补救潜在的数据库漏洞。 它可直观查看安全状态,包括解决安全问题的可操作步骤,并可加强数据库的防御工事。

  • 威胁检测

    此功能可检测异常活动,这些活动表示异常和可能有害的数据库访问或使用尝试。 它不断监视数据库的可疑活动,并针对潜在漏洞、SQL 注入攻击和异常数据库访问模式提供即时的安全警报。 威胁检测警报提供可疑活动的详细信息,并建议如何调查和缓解威胁。

符合性和安全性审核

审核可跟踪数据库事件,并将事件写入 Azure 存储帐户中的审核日志。 审核可帮助你遵守法规、了解数据库活动,以及深入了解可以指明业务考量因素或疑似安全违规的偏差和异常。

数据加密

SQL 数据库可提供加密功能来帮助保护数据。 对于动态数据,它使用传输层安全性。 对于静态数据,它使用透明数据加密。 对于使用中的数据,它使用 Always Encrypted

数据发现和分类

数据发现和分类提供内置于 Azure SQL 数据库的功能,可用于对数据库中的敏感数据进行发现、分类、标记和保护。 它提供数据库分类状态的可见性,并跟踪对数据库内及其边界外的敏感数据的访问。

Microsoft Entra 集成和多重身份验证

SQL 数据库使你能够使用 Microsoft Entra 集成集中管理数据库用户和其他 Microsoft 服务的标识。 此功能简化了权限管理,增强了安全性。 Microsoft Entra ID(以前称为 Azure Active Directory)支持多重身份验证,以提高数据和应用程序安全性,同时支持单一登录过程。

易于使用的工具

SQL 数据库让应用程序的构建和维护更加轻松、高效。 SQL 数据库让你能够专注于自己的专长:生成优秀的应用。 可使用已有工具和技能在 SQL 数据库进行管理和开发。

工具 说明
Azure 门户 用于管理所有 Azure 服务的基于 Web 的应用程序。
Azure Data Studio 一种跨平台数据库工具,在 Windows、macOS 和 Linux 上运行。
SQL Server Management Studio 用于管理任何 SQL 基础结构(从 SQL Server 到 SQL 数据库,不一而足)的免费可下载客户端应用程序。
Visual Studio 中的 SQL Server Data Tools SQL 数据库、Integration Services 包、Analysis Services 数据模型和 Reporting Services 报表的开发工具。
Visual Studio Code 一个可免费下载的开源代码编辑器,适用于 Windows、macOS 和 Linux。 它支持各种扩展,其中包括 mssql 扩展(用于查询 Microsoft SQL Server、Azure SQL 数据库和 Azure Synapse Analytics)。

SQL 数据库支持在 macOS、Linux 和 Windows 上使用 Python、Java、Node.js、PHP、 Ruby 和 .NET 生成应用程序。 SQL 数据库和 SQL Server 支持相同的连接库

使用 Azure 门户创建和管理 Azure SQL 资源

Azure 门户提供了一个页面,可以在其中管理所有 Azure SQL 资源,包括 Azure 虚拟机 (VM) 上的 SQL Server。

若要访问 Azure SQL 页面,请从 Azure 门户菜单中选择 “Azure SQL”,或在任何页面搜索并选择“Azure SQL”。

注意

Azure SQL 提供了一种快速简便的方法来访问你在 Azure 门户中的所有 SQL 资源,包括 Azure SQL 数据库中的单个和共用数据库,以及托管它们的逻辑服务器、Azure SQL 托管实例和 Azure VM 上的 SQL Server。 Azure SQL 不是服务或资源,而是一系列与 SQL 相关的服务。

若要管理现有资源,请在列表中选择所需的项。 若要创建新的 Azure SQL 资源,请选择“+ 创建”。

Azure SQL 门户页面的屏幕截图。

选择“+ 创建”后,可通过在任何磁贴上选择“显示详细信息”来查看有关不同选项的其他信息。

Azure 门户中数据库磁贴详细信息的屏幕截图。

有关详细信息,请参阅:

SQL 数据库常见问题解答

我可以控制修补故障的时间吗?

通过维护时段功能,可以为 Azure SQL 数据库中符合条件的数据库配置可预测的维护时段日程安排。 维护时段提前通知适用于配置为使用非默认维护时段的数据库。

如何规划维护事件?

如果你在应用中使用重试逻辑,则修补通常不会太明显。 有关详细信息,请参阅规划 Azure SQL 数据库中的 Azure 维护事件

与 SQL Server 工程团队合作