管理已启用 Azure Arc 的 SQL Server 的自动连接

适用范围:SQL Server

当 SQL Server 实例安装在启用 Azure Arc 的服务器上并且 Arc 服务器资源位于受支持的区域中时,它们会自动连接到 Azure Arc。 所有 SQL Server 实例资源都是在 Azure 中自动创建的,为所有 SQL Server 实例提供了集中式管理平台。 有关详细信息,请访问已启用 Azure Arc 的 SQL Server

本文详细介绍了将 SQL Server 连接到 Azure 的简化过程。

注意

具有扩展(从 2024 年 11 月 版本或更高版本开始)的现有服务器将自动应用最低特权配置。 此应用将逐渐实现。

要防止自动应用最低特权,请阻止将扩展升级到 2024 年 11 月版本。

先决条件

完成先决条件

指定许可证类型

(可选)为每个 SQL Server 实例指定许可证类型。

若要指定所需的许可证类型,请提供许可证类型值标记。 自动连接工作流需要该标记。 有关详细信息,请访问标记资源、资源组和订阅以便对其进行逻辑组织

将以下标签和值之一添加到订阅、资源组或 Arc Server 资源。

标记
ArcSQLServerExtensionDeployment Paid
ArcSQLServerExtensionDeployment PAYG
ArcSQLServerExtensionDeployment LicenseOnly

当自动连接工作流部署 SQL Server 扩展时,Microsoft 会使用此值。

重要

为了最大化 Azure Arc for SQL Server 客户的价值,如果尚未使用 ArcSQLServerExtensionDeployment 标签设置默认值,Microsoft 将使用自动过程来确定许可证类型值。 如果 SQL Server 受软件保障 (SA) 或订阅和支持涵盖,并且已购买的许可证数大于已提交到 Azure 使用 Azure 混合权益的许可证数量,则对于已加入的 SQL Server 实例,此过程按先到先得的原则将许可证类型值设置为“已付费”。 因此,你会自动访问提供给 SA 客户的极具价值的管理功能。

在连接到 Arc 的新服务器上自动安装 SQL Server 的 Azure 扩展

如果 Microsoft 安装了任何 SQL Server 实例,则会自动在连接到 Azure Arc 的每台已启用 Arc 的服务器上安装 Azure SQL Server 扩展。 自动执行过程涉及以下任务:

  1. 注册 Microsoft.AzureArcData 资源提供程序(如果尚未注册)。

  2. 设置许可证类型。

  3. 安装 SQL Server 的 Azure 扩展。

    注意

    如果设置了标记值 ArcSQLServerExtensionDeployment,则设置许可证类型。

  4. 在 Azure 中创建已启用 Arc 的 SQL Server 实例资源。

要自动连接已启用 Azure Arc 的 SQL Server,请使用满足要求的已提供方法之一将 SQL Server 自动连接到 Azure Arc

连接完成后,就可以利用 Azure SQL Server 功能了。 有关详细信息,请访问管理 SQL Server 许可证和计费选项

验证并更正许可证类型配置

要验证载入过程创建的许可证类型配置,请运行此资源图查询。

resources
| where type == "microsoft.hybridcompute/machines"
| extend
    joinID = toupper(id)
| join kind = inner (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | extend machineId = toupper(substring(id, 0, indexof(id, '/extensions')))
    | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
    | extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
    | project  machineId, licenseType
) on $left.joinID == $right.machineId
| project id, licenseType

值“需要配置”表示载入过程没有足够的信息来对许可证类型进行自动配置。 有关如何设置缺失值或更改自动配置的值的详细信息,请访问管理 SQL Server 许可证和计费选项

注意

将许可证类型设置为“已付费”PAYG将解锁成为 SA 客户提供的宝贵管理功能。

选择退出自动连接

要选择退出 SQL Server 的 Azure 扩展的自动安装,可以将以下标签和值添加到订阅或资源组或 Arc Server 资源。

标记
ArcSQLServerExtensionDeployment Disabled

或者,可限制可以在服务器上安装的扩展。 可以配置要在服务器上允许和阻止的扩展列表。 若要了解详细信息,请参阅扩展允许列表和阻止列表

了解 Microsoft 如何自动安装 Azure SQL Server 扩展

Microsoft 可以通过 Windows 服务来宾配置扩展服务 (ExtensionService) 在已启用 Arc 的服务器上运行扩展安装。 当服务器连接到 Arc 时,将安装 Windows 服务来宾配置扩展服务 (ExtensionService)。 该服务负责在计算机上安装、升级和删除扩展(代理、脚本或其他软件)。 来宾配置和扩展服务在 Windows 上作为本地系统运行,在 Linux 上作为根运行。 有关 Arc 代理服务和服务帐户的详细信息,请查看代理安全性和权限 | 代理安全性和权限

Microsoft 可以调用 API 来部署 Azure SQL Server 扩展,并自动连接到已启用 Arc 的 SQL Server。

还可以使用 Azure 门户、Azure 资源管理器 (ARM) API、Azure Policy、ARM 模板、Azure CLI 或 Azure PowerShell 模块安装扩展。 已启用 Azure Arc 的 SQL Server 的部署选项

查找连接到 Arc 但缺少 SQL Server 实例的 Azure 扩展的 SQL Server

使用以下 Azure 图形查询列出包含 Arc Server 的计算机和订阅 ID,这些服务器已安装 SQL Server 但缺少 SQL Server 的 Azure 扩展。

resources
| where type == "microsoft.hybridcompute/machines" and properties['detectedProperties']['mssqldiscovered'] has "true"
| extend
    joinID = toupper(id)
| join kind= inner  (
    resources
    | where type == "microsoft.hybridcompute/machines/extensions"
    | extend machineId = toupper(substring(id, 0, indexof(id, '/extensions')))
    | project machineId, name
    | summarize allExtensions = make_list(name) by machineId
    | where allExtensions !has ("SqlServer")
) on $left.joinID == $right.machineId
| project id, subscriptionId, tenantId

后续步骤