通过 SQL IaaS 代理扩展进行自动注册

Azure VM 上的SQL Server

默认情况下,运行 SQL Server 2016 或更高版本的 Azure VM 在被 CEIP 服务 发现时,会自动注册到 SQL IaaS 代理扩展。 可以为订阅启用自动注册功能,以便轻松自动注册 CEIP 服务未选取的任何SQL Server VM,例如旧版SQL Server。

本文将指导你启用自动注册功能。 或者,也可以向 SQL IaaS 代理扩展注册单个 VM批量注册 VM

注意

SQL Server 在 2022 年 10 月之后通过 Azure 市场部署的 VM 默认启用了 最小权限模型。 SQL IaaS 代理扩展的管理模式已于 2023 年 3 月移除。

概述

将 SQL Server VM 注册到 SQL IaaS 代理扩展以解锁完整的功能优势集。

默认情况下,Azure具有 SQL Server 2016 或更高版本的 VM 在检测到 CEIP 服务时,会自动向具有有限功能的 SQL IaaS 代理扩展注册。 可以使用自动注册功能自动注册 CEIP 服务未标识的任何SQL Server VM。 许可证类型自动默认为 VM 映像的类型。 如果为 VM 使用即用即付映像,则许可证类型将是 PAYG。 否则,许可证类型将默认为 AHUB 。 有关隐私的信息,请参阅 SQL IaaS 代理扩展隐私声明

为订阅启用自动注册后,所有已安装SQL Server的当前和将来的 VM 都会注册到 SQL IaaS 代理扩展。 这是通过运行每月作业来完成的,该作业可检测是否已在订阅中的所有未注册的 VM 上安装SQL Server。 对于未注册的 VM,作业会将 SQL IaaS 代理扩展二进制文件复制到 VM。 然后,它会运行一次性实用工具来核查SQL Server注册表的蜂窝结构。 如果检测到 SQL Server 注册表项,则会将虚拟机注册到扩展程序。 如果注册表中不存在SQL Server hive,则会删除二进制文件。

自动注册提供扩展的有限功能,例如许可证管理。 可以在 Azure 门户1 中启用 SQL 虚拟机资源中的更多功能。

注意

  • 如果注册表中不存在SQL Server配置单元,则如果存在资源锁,则删除二进制文件可能会受到影响。
  • 如果部署了具有预安装 SQL IaaS 代理扩展的市场映像的 SQL Server VM,并且该扩展处于失败状态或已删除,则自动注册会检查注册表,以查看是否已在 VM 上安装SQL Server。 然后,它将在扩展中注册。
  • 如果在启用 Centrally Managed-AHB(CM-AHB) 后激活自动注册,您可能会在 Azure VM 工作负载的 SQL Server 上产生不必要的按需付费费用风险。 若要缓解此风险,请在 CM-AHB 中调整许可证分配,以考虑其他使用情况。 SQL IaaS 代理扩展报告自动注册后的使用情况。 我们发布了一个 open source 工具,用于深入了解SQL Server许可证的利用率,包括尚未向 SQL IaaS 代理扩展注册的Azure Virtual Machines上的 SQL Server 的利用率。

先决条件

若要使用扩展启用SQL Server VM 的自动注册,需要:

  • Azure 订阅
  • 用于将虚拟机注册到以下任意Azure角色时使用的客户端凭据:虚拟机参与者参与者所有者

启用自动注册后,SQL Server根据以下条件注册 VM:

注意

Azure中的 Ubuntu Linux VM 支持自动注册。

启用自动注册

若要在 Azure 门户中启用SQL Server VM 的自动注册,请执行以下步骤:

  1. 登录到 Azure 门户

  2. 导航到 SQL 虚拟机资源页。

  3. 选择 自动 SQL Server 虚拟机注册 以打开 自动注册页。

    Screenshot 显示如何选择自动SQL Server VM 注册以打开自动注册页

  4. 从下拉列表中选择你的订阅。

  5. 通读条款。 如果你同意,请选择 “我接受”。

  6. 选择 Register 以启用该功能,并使用 SQL IaaS 代理扩展自动注册所有当前和将来SQL Server VM。 这不会在任何 VM 上重启SQL Server服务。

禁用自动注册

使用 Azure CLIAzure PowerShell 禁用自动注册功能。 禁用自动注册功能后,添加到订阅的 SQL Server VM 需要手动注册到 SQL IaaS 代理扩展。 这不会注销已注册的现有SQL Server VM。

若要使用Azure CLI禁用自动注册,请运行以下命令:

az feature unregister --namespace Microsoft.SqlVirtualMachine --name BulkRegistration

针对多个订阅启用

可以使用 PowerShell 为多个Azure订阅启用自动注册功能。

为此,请执行下列步骤:

  1. 保存此脚本

  2. 使用管理命令提示符或 PowerShell 窗口导航到保存脚本的位置。

  3. 连接到 Azure (az login)。

  4. 执行此脚本,并传入 SubscriptionIds 作为参数。 如果未指定订阅,脚本将为用户帐户中的所有订阅启用自动注册。

    以下命令会为两个订阅启用自动注册:

    .\EnableBySubscription.ps1 -SubscriptionList a1a1a-aa11-11aa-a1a1-a11a111a1,b2b2b2-bb22-22bb-b2b2-b2b2b2bb
    

    以下命令为所有订阅启用自动注册:

    .\EnableBySubscription.ps1
    

注册失败的错误存储在 RegistrationErrors.csv 中,它与保存和执行 .ps1 脚本的位置位于相同的目录中。