描述 Azure SQL 服务和功能

已完成

Azure SQL 是 Azure 中一系列基于 Microsoft SQL Server 的数据库服务的统称。 特定的 Azure SQL 服务包括:

  • Azure 虚拟机 (VM) 上的 SQL Server - 在 Azure 中运行并且安装了 SQL Server 的虚拟机。 使用 VM 使此选项成为一个基础结构即服务 (IaaS) 解决方案,可虚拟化 Azure 中用于计算、存储和网络的硬件基础结构;这是将现有本地 SQL Server 安装“直接迁移”到云的绝佳选项。
  • Azure SQL 托管实例 - 一个平台即服务 (PaaS) 选项,它与本地 SQL Server 实例几乎 100% 兼容,同时抽象化基础硬件和操作系统。 该服务包括自动软件更新管理、备份和其他维护任务,从而减少支持数据库服务器实例的管理负担。
  • Azure SQL 数据库 - 一项专为云设计的完全托管且高度可缩放的 PaaS 数据库服务。 此服务包括本地 SQL Server 的核心数据库级功能,如果需要在云中创建新应用程序,那么它是一个不错的选择。
  • Azure SQL Edge - 一个 SQL 引擎,它针对需要处理流式时序数据的物联网 (IoT) 场景进行了优化。

注意

尽管此列表中因完整性需要包括了 Azure SQL Edge,但本模块将重点介绍更通用的关系数据库方案。

比较 Azure SQL 服务

-- Azure VM 上的 SQL Server Azure SQL 托管实例 Azure SQL 数据库
SQL Server Azure VM 徽标 Azure SQL 托管实例徽标 Azure SQL 数据库徽标
云服务类型 IaaS PaaS PaaS
SQL Server 兼容性 与本地物理安装和虚拟化安装完全兼容。 应用程序和数据库可在无需更改的情况下轻松地进行“直接迁移”。 与 SQL Server 几乎 100% 兼容。 大多数本地数据库都可以使用 Azure 数据库迁移服务进行迁移,只需进行少量的代码更改 支持 SQL Server 的大多数核心数据库级功能。 本地应用程序所依赖的一些功能可能不可用。
体系结构 SQL Server 实例安装在虚拟机中。 每个实例都可以支持多个数据库。 每个托管实例都可以支持多个数据库。 此外,可使用实例池在较小的实例之间高效地共享资源。 可在专用的托管(逻辑)服务器中预配单一数据库,也可使用弹性池跨多个数据库共享资源并利用按需可伸缩性。
可用性 99.99% 99.99% 99.995%
管理 必须管理服务器的所有方面,包括操作系统和 SQL Server 更新、配置、备份和其他维护任务。 完全自动更新、备份和恢复。 完全自动更新、备份和恢复。
用例 如果需要迁移或扩展本地 SQL Server 解决方案并保留对服务器和数据库配置的所有方面的完全控制,请使用此选项。 对于大多数云迁移场景,请使用此选项,尤其是当你需要对现有应用程序进行最小更改时。 对于新的云解决方案,或需要迁移具有最少实例级依赖项的应用程序,请使用此选项。

Azure 虚拟机上的 SQL Server

通过虚拟机上的 SQL Server,你能够在云中使用完整版本的 SQL Server,而无需管理任何本地硬件。 这是 IaaS 方法的一个示例。

Azure 虚拟机上运行的 SQL Server 可有效复制在本地实体硬件上运行的数据库。 从本地运行的系统迁移到 Azure 虚拟机与将数据库从一个本地服务器移动到另一个本地服务器没有什么不同。

此方法适用于某些迁移和应用程序,这些迁移和应用程序需要访问在 PaaS 级别可能不受支持的操作系统功能。 对于要求在几乎不进行任何更改的情况下快速迁移到云的现有应用程序,SQL 虚拟机可实现“直接迁移”。 还可以使用 Azure VM 上的 SQL Server 将现有的本地应用程序扩展到混合部署中的云。

注意

“混合部署”是一个系统,其中一部分在本地运行,另一部分在云中运行。 数据库可能是在本地运行的较大系统的一部分,而数据库元素可能在云中托管。

你可以在虚拟机中使用 SQL Server 开发和测试传统的 SQL Server 应用程序。 使用虚拟机,你可以对 DBMS 和操作系统拥有完全的管理权限。 当组织已拥有可用来维护虚拟机的 IT 资源时,此选项是最佳选择。

这些功能使你能够:

  • 在不想购买本地非生产 SQL Server 硬件时,创建快速开发和测试方案。
  • 对于要求在几乎不进行任何更改或无更改的情况下快速迁移到云的现有应用程序,可随时实现“直接迁移”。
  • 通过向虚拟机分配更多内存、CPU 处理能力和磁盘空间,纵向扩展运行 SQL Server 的平台。 你可以快速调整 Azure 虚拟机的大小,而无需重新安装该虚拟机上运行的软件。

业务优势

在虚拟机上运行 SQL Server 使你能够通过本地和云托管部署的组合来满足独特的多样化业务需求,同时在这些环境中使用相同的服务器产品、开发工具和专业知识组合。

对于企业来说,将 DBMS 转移到完全托管的服务并不总是一件容易的事。 可能需要满足特定要求才能迁移到需要更改数据库和使用它的应用程序的托管服务。 因此,使用虚拟机是一个解决方案,但使用它们并不能消除像本地那样细致管理 DBMS 的需要。

Azure SQL 数据库托管实例

Azure SQL 托管实例可在云中有效地运行完全可控的 SQL Server 实例。 可以在同一实例上安装多个数据库。 你可以完全控制此实例,就像对本地服务器一样。 SQL 托管实例可自动执行备份、软件修补、数据库监视和其他常规任务,但你可以完全控制数据库的安全性和资源分配。 有关详细信息,请参阅什么是 Azure SQL 托管实例?

托管实例依赖于其他 Azure 服务,如用于备份的 Azure 存储、用于遥测的 Azure 事件中心、用于身份验证的 Microsoft Entra ID、用于实现透明数据加密 (TDE) 的 Azure 密钥保管库,以及可提供安全性和可支持性功能的一系列 Azure 平台服务。 托管实例与这些服务建立连接。

所有通信都使用证书进行加密和签名。 为了检查通信方的可信度,托管实例会不断地通过证书吊销列表来验证这些证书。 如果证书被吊销,则托管实例会关闭连接以保护数据。

用例

如果要将本地 SQL Server 实例及其所有数据库直接迁移到云中,而不产生在虚拟机上运行 SQL Server 的管理开销,请考虑使用 Azure SQL 托管实例。

Azure SQL 托管实例提供了下文介绍的 Azure SQL 数据库中不可用的功能。 如果系统使用链接服务器、服务代理(可用于跨服务器分发工作的消息处理系统)或数据库邮件(使数据库能够向用户发送电子邮件)等功能,则应使用托管实例。 要检查与现有本地系统的兼容性,建议使用 Azure 数据库迁移服务,该服务可用作 Azure Data Studio 的 Azure SQL 迁移扩展,也可以通过 Azure 门户Azure PowerShell 和 Azure CLI 使用。 此工具分析 SQL Server 上的数据库,并报告任何可能阻止迁移到托管实例的问题。

业务优势

Azure SQL 托管实例使系统管理员能够减少在管理任务上花费的时间,因为服务可以执行这些任务,或者大大简化这些任务。 自动化任务包括操作系统和数据库管理系统软件安装和修补、动态实例大小调整和配置、备份、数据库复制(包括系统数据库)、高可用性配置以及运行状况和性能监视数据流的配置。

Azure SQL 托管实例与本地运行的 SQL Server Enterprise Edition 几乎 100% 兼容。

Azure SQL 托管实例支持 SQL Server 数据库引擎登录,以及与 Microsoft Entra ID 集成的登录。 SQL Server 数据库引擎登录信息包括用户名和密码。 每次连接到服务器时,都必须输入凭据。 Microsoft Entra 登录可使用与当前计算机登录关联的凭据,并且无需在每次连接到服务器时提供凭据。

Azure SQL 数据库

Azure SQL 数据库是 Microsoft 的一个 PaaS 产品。 在云中创建托管数据库服务器,然后在此服务器上部署数据库。

注意

SQL Database 服务器是一个逻辑构造,充当多个单一数据库或共用数据库、登录名、防火墙规则、审核规则、威胁检测策略和故障转移组的集中管理点。

Azure SQL 数据库可用作单一数据库或弹性池。

单一数据库

通过此选项,你可以快速设置和运行单一 SQL Server 数据库。 在云中创建和运行数据库服务器,并通过此服务器访问数据库。 Microsoft 管理服务器,因此你只需要配置数据库、创建表以及用数据填充它们。 如果需要更多的存储空间、内存或处理能力,可以缩放数据库。 默认情况下,资源是预先分配好的,并按小时对请求的资源收费。 还可以指定无服务器配置。 在此配置中,Microsoft 创建自己的服务器,该服务器可由属于其他 Azure 订阅者的数据库共享。 Microsoft 确保数据库的隐私。 数据库会自动缩放,并根据需要分配或释放资源。

弹性池

此选项与单一数据库类似,只不过默认情况下,多个数据库可以通过多个租户共享相同的资源,如内存、数据存储空间和处理能力。 资源称为“池”。 创建池,且只有你的数据库可以使用该池。 如果数据库的资源要求随时间而变化,并且可以帮助你降低成本,则此模型非常有用。 例如,在每个月末处理工资单时,工资单数据库可能需要充足的 CPU 支持,但在其他时候,数据库可能不那么活跃。 你可能有用于运行报表的另一个数据库。 随着管理报表的生成,这个数据库在月中可能会有好几天处于活动状态,但在其他时间负载会较轻。 借助弹性池,你能够使用池中可用的资源,然后在处理完成后释放资源。

用例

Azure SQL 数据库为你提供了管理量最小的低成本最佳选择。 它与本地 SQL Server 安装不完全兼容。 它通常用于某些新的云项目,项目的应用程序设计可以容纳对应用程序的任何必需更改。

注意

可以使用适用于 Azure Data Studio 的 Azure SQL 迁移扩展来检测数据库兼容性问题,这些问题可能会影响 Azure SQL 数据库中数据库的功能。 有关详细信息,请参阅适用于 Azure Data Studio 的 Azure SQL 迁移扩展

Azure SQL 数据库通常用于:

  • 要求使用最新且稳定的 SQL Server 功能的现代云应用程序。
  • 要求高可用性的应用程序。
  • 负载可变的系统,需要快速扩展和缩减数据库服务器。

业务优势

Azure SQL 数据库会自动更新和修补 SQL Server 软件,以确保始终运行服务的最新和最安全的版本。

Azure SQL 数据库的可伸缩性功能可确保可以增加可用于存储和处理数据的资源,而无需执行昂贵的手动升级。

该服务提供高可用性保证,可确保数据库至少 99.995% 的时间可用。 Azure SQL 数据库支持时间点还原,这样你能够将数据库恢复到过去任何时间点的状态。 数据库可以复制到不同的区域,以提供更多的复原能力和灾难恢复。

高级威胁防护提供高级安全功能(如漏洞评估),以帮助检测和修复数据库的潜在安全问题。 高级威胁防护还检测异常活动,指示尝试访问或利用数据库的行为异常且可能有害。 它不断监视数据库的可疑活动,并针对潜在漏洞、SQL 注入攻击和异常数据库访问模式提供即时的安全警报。 威胁检测警报提供可疑活动的详细信息,并建议如何调查和缓解威胁。

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

SQL 数据库通过提供加密来保护存储在数据库中的数据(静态)和通过网络传输的数据(动态),从而帮助保护数据。