本文提供有关运行 Azure 虚拟机 (VM) 上的 SQL Server 时出现的一些最常见问题的解答。
如果本文未解决你的 Azure 问题,请访问 MSDN 和 CSDN 上的 Azure 论坛。 可以在这些论坛上发布问题。 还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上提交。
Azure 为所有 Windows 和 Linux 版本中的所有受支持 SQL Server 主要发行版维护虚拟机映像。 有关详细信息,请参阅 Windows VM 映像和 Linux VM 映像的完整列表。
虚拟机库中的 SQL Server 映像使用最新的 OS 和 SQL Server 更新来定期进行更新,通常每月更新一次。 部署后,可以通过 Azure 更新管理器手动或自动使 OS 和 SQL Server 保持最新状态。
是的。 在 Azure 中只为每个主要版本维护一个映像。 例如,发布新的 SQL Server 服务包时,会将新映像添加到该服务包的库中,并且将立即从 Azure 门户中删除上一个服务包的 SQL Server 映像。 但是,在接下来的三个月,仍可以通过 PowerShell 预配该映像。 三个月之后,先前的 Service Pack 映像不再可用。 如果 SQL Server 版本由于生命周期结束而不受支持,则也会应用此删除策略。
是的,使用 PowerShell。 有关使用 PowerShell 部署 SQL Server VM 的详细信息,请参阅如何使用 Azure PowerShell 预配 SQL Server 虚拟机。
可以,但必须将每个 SQL Server VM 注册到 SQL IaaS 代理扩展,以便在门户中管理 SQL Server VM,以及利用自动修补和自动备份等功能。 在注册到该扩展时,还需要为每个 SQL Server VM 指定许可证类型。
可以部署 Windows Server VM(不安装 SQL Server),并使用 SQL sysprep 进程和 SQL Server 安装媒体将 Azure VM (Windows) 上的 SQL Server 通用化。 如果客户有软件保障,则可以从批量许可中心获取其安装介质。 没有软件保障的客户可以使用具有所需版本的 Azure 市场 SQL Server VM 映像中的安装介质。
另外,也可使用 Azure 市场中的 SQL Server 映像之一来将 Azure VM 上的 SQL Server 通用化。 在创建你自己的映像之前,必须在源映像中删除以下注册表项。 否则,可能会导致 SQL Server 安装程序启动文件夹膨胀和/或 SQL IaaS 代理扩展处于失败状态。
注册表项路径:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SysPrepExternal\Specialize
备注
Azure VM 上的 SQL Server(包括那些从自定义通用化映像部署的 SQL Server)应该注册到 SQL IaaS 代理扩展,以便能够满足合规要求并利用可选功能(例如自动修补和自动备份)。 该扩展还允许为每个 SQL Server VM 指定许可证类型。
可以,但必须将每个 SQL Server VM 注册到 SQL IaaS 代理扩展,以便在门户中管理 SQL Server VM,以及利用自动修补和自动备份等功能。
否。 对于包含 SQL Server 的虚拟机图库映像,必须通过 Azure 门户或 PowerShell 选择提供的某个映像。 但是,可以部署一个支持的 Windows VM 并在其中自行安装支持的 SQL Server 版本。 然后必须将 SQL Server VM 注册到 SQL IaaS 代理扩展,以便在 Azure 门户中管理 SQL Server VM,以及利用自动修补和自动备份等功能。
如果要查找的 SQL Server 的发行版本和产品版本未在 Azure 市场的“映像”下拉列表中提供,请部署仅限 Windows 的 Azure 虚拟机,然后手动安装所需的 SQL Server 发行版本和产品版本。 如果要从 Azure 门户管理 SQL Server VM,请将 SQL Server VM 注册到 SQL IaaS 代理扩展。
如果要查找的 Windows 版本未在 Azure 市场的“映像”下拉列表中提供,请使用所需的产品版本部署仅限 Windows 的 Azure 虚拟机,然后手动安装所需的 SQL Server 发行版本和产品版本。 如果要从 Azure 门户管理 SQL Server VM,请将 SQL Server VM 注册到 SQL IaaS 代理扩展。
Azure 市场上提供了开发人员版和 Express 版 SQL Server,这些产品版本不会向你收取 SQL Server 许可证的费用。 如果要查找的 SQL Server 的产品版本中没有开发人员版和 Express 版,请部署仅限 Windows 的 Azure 虚拟机,然后手动安装所需的 SQL Server 发行版本和产品版本。 如果要从 Azure 门户管理 SQL Server VM,请将 SQL Server VM 注册到 SQL IaaS 代理扩展。
最简单的方法是创建包含 SQL Server 的虚拟机。 有关注册 Azure 并从门户创建 SQL Server VM 的教程,请参阅在 Azure 门户中预配 SQL Server 虚拟机。 可选择使用按秒付费 SQL Server 许可的虚拟机映像,或者可以使用允许自带 SQL Server 许可证的映像。 此外,你也可以选用免费许可版(开发人员版或速成版),或通过重新使用本地许可证在 VM 上手动安装 SQL Server。 请务必将 SQL Server VM 注册到 SQL IaaS 代理扩展,以便在 Azure 门户中管理 SQL Server VM,以及利用自动修补和自动备份等功能。 有关详细信息,请参阅 SQL Server Azure VM 定价指南。
可通过三种方式实现此目的。 如果你是企业协议 (EA) 客户,则可以配置其中一个虚拟机映像。 如果你有软件保障,则可以在现有的即用即付 (PAYG) 映像中启用 Azure 混合权益。 或者,可将 SQL Server 安装媒体复制到 Windows Server VM,然后在 VM 上安装 SQL Server。 请务必将 SQL Server VM 注册到该扩展,以便能够使用门户管理、自动备份和自动修补等功能。
不是。 如果客户使用自带许可证,并要将其 SQL Server SA 服务器/CAL VM 转移到 Azure VM,则需要 CAL。
是的。 通过启用 Azure 混合权益,可以轻松将即用即付 (PAYG) 库映像切换为自带许可 (BYOL)。 有关详细信息,请参阅如何更改 SQL Server VM 的许可模型。 目前,此功能仅适用于公共和 Azure 政府云客户。
不是。 更改许可模型不需将 SQL Server 停机,因为更改会立即生效,不需重启 VM。
不是。 不支持在经典 VM 上更改许可模型。 可将 VM 迁移到 Azure 资源管理器模型并注册到 SQL IaaS 代理扩展。 将 VM 注册到 SQL IaaS 代理扩展后,即可在 VM 上更改许可模型。
不是。 通过 SQL IaaS 代理扩展,可以管理单个默认实例、单个命名实例,或者,如果 SQL Server VM 有多个实例,则其中一个实例必须是由 Azure 门户管理的默认实例。 有关这些限制的详细信息,请参阅 SQL Server IaaS 代理扩展。
是的,Azure 云解决方案提供商 (CSP) 客户可以通过先部署即用即付 VM,然后将其转换为自带许可(如果他们具有有效的软件保障)来使用 Azure 混合权益。
若要获得备用辅助可用性组或故障转移群集实例的免费被动许可证,必须满足产品许可条款中所述的以下所有条件:
- 已通过软件保障获得许可移动性。
- 被动 SQL Server 实例不向客户端提供 SQL Server 数据,也不运行主动 SQL Server 工作负载。 它仅用于与主服务器同步,否则将被动数据库保持在热备用状态。 如果它正在为数据提供服务,例如向运行活动 SQL Server 工作负载的客户端提供报告,或者执行产品条款中未指定的任何工作,则必须是付费许可的 SQL Server 实例。 在次要实例上允许进行以下活动:数据库一致性检查或 CheckDB、完整备份、事务日志备份和监视资源使用情况数据。 还可以同时运行主灾难恢复实例和相应灾难恢复实例,以便每 90 天进行一次短暂的灾难恢复测试。
- 主动 SQL Server 许可证包含在软件保障中,并且允许“一个”被动的次要 SQL Server 实例,最多也只能具有与许可的主动服务器相同的计算量。
- 次要 SQL Server VM 在 Azure 门户中使用灾难恢复许可证。
被动 SQL Server 实例不向客户端提供 SQL Server 数据,也不运行主动 SQL Server 工作负载。 它仅用于与主服务器同步,否则将被动数据库保持在热备用状态。 如果它正在为数据提供服务,例如向运行活动 SQL Server 工作负载的客户端提供报告,或者执行产品条款中未指定的任何工作,则必须是付费许可的 SQL Server 实例。 在次要实例上允许进行以下活动:数据库一致性检查或 CheckDB、完整备份、事务日志备份和监视资源使用情况数据。 还可以同时运行主灾难恢复实例和相应灾难恢复实例,以便每 90 天进行一次短暂的灾难恢复测试。
《SQL Server 许可指南》提供了可以利用灾难恢复权益的应用场景。 有关详细信息,请参阅”产品条款”并与许可联系人或客户经理联系。
是的。 SQL Server 安装介质位于 C 驱动器上的某个文件夹中。 可从该位置运行 Setup.exe 以添加新的 SQL Server 实例,或更改计算机上 SQL Server 的其他已安装功能。 某些功能(例如自动备份、自动修补和 Azure Key Vault 集成)仅对默认实例或配置正确的命名实例起作用(请参阅问题 3)。 使用通过 Azure 混合权益获得软件保障或即用即付许可模型的客户无需支付额外的许可费用,即可在虚拟机上安装 SQL Server 的多个实例。 除非配置正确,否则安装更多 SQL Server 实例可能会导致系统资源变得紧张。
SQL Server 2012 至 SQL Server 2019 可以支持一个独立服务器上的 50 个实例。 不管是在 Azure 中还是在本地,此限制都是相同的。 请参阅最佳做法了解如何更好地准备环境。
当你在 Azure VM 上预配 SQL Server 时,SQL Server 安装程序会安装 Microsoft Visual C++ 可再发行程序包,它是 SQL Server 组件正常运行所必需的。 根据 SQL Server 安装的 Microsoft Visual C++ 可再发行组件的版本,你的安全软件可能会发送有关生命周期结束或过时软件组件的警报,尤其是对于较旧版本的 SQL Server(SQL Server 2016 及更早版本)。 根据支持生命周期策略,只要支持安装了 Microsoft Visual C++ 可再发行组件的产品,就支持该组件。 只要已安装的 SQL Server 版本仍受支持,你就可以安全地忽略此警告。 建议不要删除 VC++,因为它可能会中断某些 SQL Server 功能。
可以,但需注意以下事项。 首先,根据 VM 的许可模型,与 SQL Server 相关的计费可能会继续发生。 其次,如前面的解答中所述,某些功能依赖于 SQL Server IaaS 代理扩展。 如果卸载默认实例而不删除 IaaS 代理扩展,该扩展将继续查找默认实例,并可能从以下两个源生成事件日志错误:Microsoft SQL Server 凭据管理和 Microsoft SQL Server IaaS 代理。 其中一个错误可能类似于以下内容:
建立与 SQL Server 的连接时,出现网络相关或特定于实例的错误。 找不到或无法访问该服务器。
如果决定卸载默认实例,还要卸载 SQL Server IaaS 代理扩展。
可以,只要指定的实例是 SQL Server 上的唯一实例,且原始默认实例已正确卸载。 如果没有默认实例,但是单个 SQL Server VM 上有多个命名实例,则 SQL Server IaaS 代理扩展将无法安装。
可以,但需要采取额外的措施来避免产生定价指南中所述的 SQL Server 实例费用。 如果要彻底删除 SQL Server 实例,可以迁移到未预装 SQL Server 的另一个 Azure VM,然后删除当前的 SQL Server VM。 若要保留该 VM 并停止 SQL Server 计费,请执行以下步骤:
- 根据需要备份所有数据,包括系统数据库。
- 彻底卸载 SQL Server,包括 SQL IaaS 代理扩展(如果有)。
- 安装免费的 SQL Express 版本。
- 向 SQL IaaS 代理扩展注册。
- 在 Azure 门户中将 SQL Server 的版本更改为 Express 以停止计费。
- (可选)通过禁用服务启动来禁用 Express SQL Server 服务。
不是。 门户管理由 SQL IaaS 代理扩展提供,依赖于 SQL Server IaaS 代理扩展。 因此,与扩展相同的限制也适用于门户。 如果配置正确,则门户只能管理一个默认实例或一个命名实例。 有关详细信息,请参阅 SQL Server IaaS 代理扩展
不是。 Azure VM 上的 SQL Server 目前不支持使用 Microsoft Entra 域服务。 请改用 Active Directory 域帐户。
客户可以使用包含所需 SQL Server 版本的安装介质来更改其 SQL Server 版本。 更改版本以后,使用 Azure 门户修改 VM 的版本属性,使之准确反映 VM 的计费。 有关详细信息,请参阅更改 SQL Server VM 的版本。 不同版本的 SQL Server 没有计费差异,因此 SQL Server 的版本发生更改后,无需采取进一步操作。
对于通过 Azure 市场部署的 SQL Server VM,安装介质位于 C:\SQLServerFull
。 你可从该位置运行 Setup.exe
以添加新的 SQL Server 实例,或更改计算机上 SQL Server 的其他已安装功能。 还可以将此安装介质复制到其他虚拟机,以安装或升级到同一发行版本和产品版本的 SQL Server。 如果客户有软件保障,则可以从批量许可中心获取其安装介质。
虚拟机允许控制主机,包括应用更新的时间与方法。 对于操作系统,可以手动应用 Windows 更新,或者启用名为自动修补的计划服务。 自动修补将安装任何标记为重要的更新,包括该类别中的 SQL Server 更新。 必须手动安装其他可选的 SQL Server 更新。
如果 OS 是 Windows Server 2008 R2 或更高版本,则可以。 可以使用任何安装媒体来升级 SQL Server 的版本,然后可以注册到 SQL IaaS 代理扩展。 这样做可以获得 SQL IaaS 代理扩展的所有优势,如门户可管理性、自动备份和自动修补。 如果 OS 版本是 Windows Server 2008,则扩展只支持有限的功能。
是的。 可以使用存储子系统的 Azure 共享磁盘、高级文件共享 (PFS) 或存储空间直通 (S2D) 来配置故障转移群集实例。 高级文件共享提供可满足许多工作负载需求的 IOPS 和吞吐量。 对于 IO 密集型工作负载,请考虑使用托管的高级或超级磁盘上的直接存储空间。 或者,可使用第三方群集或存储解决方案,如 Azure 虚拟机中 SQL Server 的高可用性和灾难恢复中所述。
重要
注册到扩展的 SQL Server FCI 不支持需要代理的功能,例如自动备份、修补和高级门户管理。 请查看功能优势了解详细信息。
从概念上讲,在 Azure 虚拟机上运行 SQL Server 与在远程数据中心运行 SQL Server 并没什么不同。 相比之下,Azure SQL 数据库 可提供数据库即服务。 使用 SQL 数据库时,无法访问托管数据库的计算机。 有关完整比较,请参阅选择云 SQL Server 选项:Azure SQL (PaaS) 数据库或 Azure VM 上的 SQL Server (IaaS)。
从 Microsoft SQL Server 数据工具 - Visual Studio 2013 商业智能下载并安装 SQL 数据工具。
是的。 SQL Server 2016 SP2 和更高版本支持本地 DTC。 但是,在使用 Always On 可用性组时必须对应用程序进行测试,因为故障转移期间正在进行的事务会失败,并且必须重试。 从 Windows Server 2019 开始将会推出群集 DTC。
不是。 事实上,Azure SQL 虚拟机和 SQL IaaS 代理扩展不存储任何客户数据。 有关详细信息,请参阅 SQL IaaS 代理扩展隐私声明。
若要在 Azure VM 上的 SQL Server 上执行可用性组的跨群集迁移,请使用标准的 Azure 负载均衡器 SKU。
是。 使用 SMB 协议的故障转移群集实例和 SQL Server 独立实例都支持 Azure 高级文件共享。
不是。 Microsoft 会自动注册从 Azure 市场中的 SQL Server 映像预配的 VM。 仅当 VM 不是从 Azure 市场中的 SQL Server 映像预配的,并且 SQL Server 是自行安装的时,才需要注册到该扩展。
是的。 如果客户未使用 Azure 市场中的 SQL Server 映像,而是自行安装的 SQL Server,或者如果他们提供自定义 VHD,则应该将其 SQL Server VM 注册到该扩展。 所有类型的订阅(“直接”、“企业协议”和“云解决方案提供商”)拥有的 VM 都可以注册到 SQL IaaS 代理扩展。
有关详细信息,请查看先决条件。
用于注册虚拟机的客户端凭据应存在于以下任何 Azure 角色中:“虚拟机参与者”、“参与者”或“所有者”。
最初不会。 首次注册到 SQL IaaS 代理扩展时,二进制文件将复制到 SQL Server VM,向你提供有限的功能。 启用依赖它的功能后,SQL IaaS 代理将安装到 VM。 有关有限功能的信息,请查看权益表。
2022 年 10 月为扩展引入了最小特权权限模型,为扩展使用的每个功能授予所需的最小权限。 在 2022 年 10 月之后通过 Azure 市场部署的 SQL Server VM 默认启用最小特权权限模型。 该扩展为在 2022 年 10 月之前部署的 SQL Server VM 或自行安装的 SQL Server VM 使用系统管理员权限,这些 SQL Server VM 尚未在 Azure 门户中手动启用最小特权模型。 若要了解详细信息,请查看 SQL IaaS 代理扩展权限。
SQL 虚拟机资源是一种免费资源,可用于从 Azure 门户管理 SQL Server VM。 从 Azure 市场部署 SQL Server VM 映像时,或者在 SQL IaaS 代理扩展中手动注册 SQL Server VM 时,会创建 SQL 虚拟机资源。 如果检测到 SQL Server 实例,Azure 还可为现有 VM 自动创建此资源。 SQL 虚拟机资源不会产生任何关联费用。
不会,从 2021 年 9 月开始,向 SQL IaaS 代理扩展注册时,不再需要重启 SQL Server 服务。
不是。 注册到 SQL IaaS 代理扩展时,SQL Server 许可证类型不是可选属性。 注册到 SQL IaaS 代理扩展时,必须将 SQL Server 许可证类型设置为即用即付或 Azure 混合权益。 如果安装了任何免费版本的 SQL Server(例如开发人员版或评估版),则必须注册即用即付许可。 Azure 混合权益仅适用于付费版本的 SQL Server,例如企业版和标准版。
许可证类型自动默认为 VM 映像的类型。 如果对 VM 使用即用即付映像,则许可证类型将为 PAYG
,否则许可证类型将默认为 AHUB
。
是的。 如果你从自己的媒体部署了 SQL Server,并安装了 SQL IaaS 代理扩展,则可将 SQL Server VM 注册到该扩展,以获得 SQL IaaS 代理扩展提供的可管理性优势。
是的。 导航到 SQL Server VM 的“SQL 虚拟机”资源,然后选择“帮助”下的“SQL IaaS 代理扩展设置”以打开修复页面并修复扩展。
不是。 无法在 Azure 门户中将单个 VM 注册到 SQL IaaS 代理扩展。 仅支持使用 Azure CLI 或 Azure PowerShell 注册到 SQL IaaS 代理扩展。
不是。 VM 必须至少有一个 SQL Server(数据库引擎)实例才能成功注册到 SQL IaaS 代理扩展。 如果 VM 上没有 SQL Server 实例,则新的 Microsoft.SqlVirtualMachine 资源会处于失败状态。
可以,前提是该 VM 上有一个默认实例。 SQL IaaS 代理扩展只注册一个 SQL Server(数据库引擎)实例。 如果有多个 SQL Server 实例,SQL IaaS 代理扩展将注册默认实例。
是的。 Azure VM 上的 SQL Server 故障转移群集实例只能以有限的功能注册到 SQL IaaS 代理扩展。
是的。 如果你正在参与 Always On 可用性组配置,可以不受限制地将 Azure VM 上的 SQL Server 实例注册到 SQL IaaS 代理扩展。
无。 注册到 SQL IaaS 代理扩展不会产生相关费用。 使用该扩展管理 SQL Server VM 是免费的。
启用需要安装代理的功能后,安装到 OS 的两个服务的影响将降至最低。 可以通过任务管理器监视这些服务,并可以在内置 Windows 服务控制台中查看。
这两个服务名称为:
SQLIaaSExtension
(显示名称 -Microsoft SQL Server IaaS Agent
)SqlIaaSExtensionQuery
(显示名称 -Microsoft SQL Server IaaS Query Service
)
通过从 SQL Server VM 中删除扩展来移除扩展
不是。 SQL IaaS 代理扩展只是进一步提高了 Azure VM 上的 SQL Server 的可管理性,不会额外收费。
是的,只要使用资源管理器模型而不是使用经典模型将 SQL Server VM 部署到公共云就行。 所有其他客户都可以注册到新的 SQL IaaS 代理扩展。 但是,只有享受软件保障权益的客户才能通过激活 SQL Server VM 上的 Azure 混合权益 (AHB) 来使用自己的许可证。
删除或移动 Microsoft.Compute/VirtualMachine 资源时,会通知关联的 Microsoft.SqlVirtualMachine 资源以异步方式复制此操作。
删除 Microsoft.SqlVirtualMachine 资源时,Microsoft.Compute/VirtualMachine 资源不受影响。 但是,许可更改会默认回退到原始映像源。
否。 无论 SQL Server VM 是否注册了 SQL IaaS 代理扩展,扩展安全更新 (ESU) 都会自动应用于该 VM。
管理模式已从 SQL IaaS 代理扩展体系结构中移除。 从 2023 年 3 月开始,注册到 SQL IaaS 代理扩展最初只会将二进制文件复制到 SQL Server VM,并提供有限的功能。 启用依赖它的功能后,SQL IaaS 代理将安装到 SQL Server VM。
不是。 以下映像不支持 SQL IaaS 代理扩展:SQL Server Reporting Services、SQL Server Power BI 报表服务器、SQL Server Analysis Services。