配置已启用 Azure Arc 的 SQL Server
适用于:SQL Server
每个已启用 Azure Arc 的服务器都包含一组应用于该服务器中安装的所有 SQL Server 实例的属性。 在计算机上安装 SQL Server 的 Azure 扩展后,可以配置这些属性。 但只有安装了一个或多个 SQL Server 实例时,这些属性才会生效。 在 Azure 门户中,已启用 Azure Arc 的 SQL Server 的“概述”页面介绍了 SQL Server 配置对特定实例产生的影响。
Azure 门户 SQL Server 配置允许执行以下管理任务:
先决条件
- 你至少在组织创建的其中一个 Azure 订阅中拥有参与者角色。 了解如何创建新的计费订阅。
- 对于将在其中注册 SQL Server 实例的资源组,你拥有参与者角色。 有关详细信息,请参阅托管的 Azure 资源组。
- 在用于 SQL Server 即用即付计费的每个订阅中都注册了 Microsoft.AzureArcData 和 Microsoft.HybridCompute 资源提供程序。
注册资源提供程序
若要注册资源提供程序,请使用以下方法之一:
- 选择订阅
- 选择自己的订阅
- 在“设置”下,选择“资源提供程序”
- 搜索
Microsoft.AzureArcData
和Microsoft.HybridCompute
,并选择“注册”
修改 SQL Server 配置
可以使用 Azure 门户、PowerShell 或 CLI 将特定的已启用 Arc 的服务器上的所有或某些配置设置更改为所需状态。
要使用单个命令修改较大范围(例如资源组、订阅或多个订阅)的 SQL Server 配置,请使用 modify-license-type.ps1
PowerShell 脚本。 它作为开放源代码 SQL Server 示例发布,并包含分步说明。
提示
从 Azure Cloud Shell 运行脚本,因为:
- 它预先安装了所需的 Azure PowerShell 模块
- 它自动对你进行身份验证
有关详细信息,请参阅使用 Cloud Shell 运行脚本。
可通过两种方式在 Azure 门户 中配置 SQL Server 主机。
打开已启用 Arc 的服务器概述页,然后选择“SQL Server 配置”,如下所示。
或
打开已启用 Arc 的 SQL Server 概述页,然后选择“属性”。 在“SQL Server 配置”下,选择需要修改的设置:
- 许可证类型
- ESU 订阅
- 自动更新
设置许可证类型属性
选择一种许可证类型。 有关说明,请参阅许可证类型。
设置扩展安全更新程序属性
扩展安全更新程序 (ESU) 适用于将具有软件保障或即用即付的许可证作为许可证类型的合格 SQL Server 实例。 如果许可证类型为仅限许可证,则将禁用激活 ESU 订阅的选项。 请参阅 SQL Server 的扩展安全更新程序。
注意
- 若要激活 ESU 订阅,许可证类型必须设置为即用即付或具有软件保障的许可证。 如果仅将其设置为“仅限许可证”,则会禁用扩展的安全更新程序选项。
- 如果启用了 ESU,则在取消 ESU 订阅之前,许可证类型无法更改为
LicenseOnly
。
应用物理核心许可证
如果这是虚拟机,并且你利用无限虚拟化权益来许可 SQL Server 软件或 SQL 订阅,请选中此复选框。 如果选中,p 核心将优先,并且与此 VM 关联的 SQL Server 软件成本或 USU 成本将取消。
重要
- 在列出的提供程序基础结构上运行的 VM 不支持 UV 权益。 如果为此类 VM 选择此选项,则会忽略此意向,并且你需要为 VM 的 v 核心付费。 有关详细信息,请参阅列出的提供程序。
- 如果要配置不受上述限制约束的 VM,请确保所选的许可证类型与 p 核心许可证资源中配置的计费计划匹配。
添加到“排除实例”列表
可以从 Azure 策略驱动的大规模加入操作或自动加入流程中排除某些实例。 要从这些操作中排除特定实例,请将实例名称添加到“跳过实例”列表中。 有关大规模加入选项的详细信息,请参阅已启用 Azure Arc 的 SQL Server 的备用部署选项。
注意
不能排除使用即用即付 (PAYG) 付费模式的 SQL Server 实例。
保存更新的配置
验证许可证类型、ESU 设置以及要排除的任何实例后,选择“保存”以应用更改。
查询 SQL Server 配置
可以使用 Azure Resource Graph 查询所选范围内的 SQL Server 配置设置。 请参阅以下示例。
按许可证类型计数
此示例将按许可证类型返回计数。
resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend licenseType = iff(properties.settings.LicenseType == '', 'Configuration needed', properties.settings.LicenseType)
| summarize count() by tostring(licenseType)
标识许可证类型未定义的实例
此查询将返回许可证类型为 null 的实例列表。
resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| where isnull(properties.settings.LicenseType)
| project ['id'], resourceGroup, subscriptionId
列出每个 SQL Server 实例的配置详细信息
此查询标识有关每个实例的许多详细信息,包括许可证类型、ESU 设置和启用的功能。
resources
| where type == "microsoft.hybridcompute/machines"| where properties.detectedProperties.mssqldiscovered == "true"| extend machineIdHasSQLServerDiscovered = id
| project name, machineIdHasSQLServerDiscovered, resourceGroup, subscriptionId
| join kind= leftouter (
resources
| where type == "microsoft.hybridcompute/machines/extensions" | where properties.type in ("WindowsAgent.SqlServer","LinuxAgent.SqlServer")
| extend machineIdHasSQLServerExtensionInstalled = iff(id contains "/extensions/WindowsAgent.SqlServer" or id contains "/extensions/LinuxAgent.SqlServer", substring(id, 0, indexof(id, "/extensions/")), "")
| project Extension_State = properties.provisioningState,
License_Type = properties.settings.LicenseType,
ESU = iff(notnull(properties.settings.enableExtendedSecurityUpdates), iff(properties.settings.enableExtendedSecurityUpdates == true,"enabled","disabled"), ""),
Extension_Version = properties.instanceView.typeHandlerVersion,
Excluded_instances = properties.ExcludedSqlInstances,
Purview = iff(notnull(properties.settings.ExternalPolicyBasedAuthorization),"enabled",""),
Entra = iff(notnull(properties.settings.AzureAD),"enabled",""),
BPA = iff(notnull(properties.settings.AssessmentSettings),"enabled",""),
machineIdHasSQLServerExtensionInstalled)on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isnotempty(machineIdHasSQLServerExtensionInstalled)
| project-away machineIdHasSQLServerDiscovered, machineIdHasSQLServerExtensionInstalled
使用 SQL Server 的实例列出已启用 Arc 的服务器
此查询会标识已启用 Azure Arc 的服务器,其中发现有 SQL Server 实例。
resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
//| summarize count()
此查询会返回已启用 Azure Arc 的服务器,这些服务器具有 SQL Server 实例,但未安装 Arc SQL Server 扩展。 此查询仅适用于 Windows 服务器。
resources
| where type == "microsoft.hybridcompute/machines"
| where properties.detectedProperties.mssqldiscovered == "true"
| project machineIdHasSQLServerDiscovered = id
| join kind= leftouter (
resources
| where type == "microsoft.hybridcompute/machines/extensions"
| where properties.type == "WindowsAgent.SqlServer"
| project machineIdHasSQLServerExtensionInstalled = substring(id, 0, indexof(id, "/extensions/WindowsAgent.SqlServer")))
on $left.machineIdHasSQLServerDiscovered == $right.machineIdHasSQLServerExtensionInstalled
| where isempty(machineIdHasSQLServerExtensionInstalled)
| project machineIdHasSQLServerDiscoveredButNotTheExtension = machineIdHasSQLServerDiscovered
有关 Azure Resource Graph 查询的更多示例,请参阅入门级 Resource Graph 查询。
管理无限制虚拟化
为启用无限制虚拟化,由 Azure Arc 启用的 SQL Server 支持特殊的资源类型:SQLServerLicense。 此资源允许你使用已安装的 SQL Server 实例为许多虚拟机授予许可。 有关许可模型的详细信息,请参阅使用无限制虚拟化授予 SQL Server 实例许可。
先决条件
你的 RBAC 角色包含以下权限:
- Microsoft. AzureArcData/SqlLicenses/read
- Microsoft. AzureArcData/SqlLicenses/write
- Microsoft.Management/managementGroups/read
- Microsoft.Resources/subscriptions/read
- Microsoft.Resources/subscriptions/resourceGroups/read
- Microsoft.Support/supporttickets/write
创建 SQL Server 许可证
要创建 SQL Server 许可证资源,请使用以下方法之一:
- 选择“Azure Arc”
- 在“数据服务”下,选择“SQL Server 许可证”
- 单击“+创建”
- 选择“SQL Server 物理核心许可证”
- 完成创建向导
更改 SQL Server 许可证属性
要更改 SQL Server 许可证属性,例如在以后激活它,请使用以下方法之一:
- 选择“Azure Arc”
- 在“数据服务”下,选择“SQL Server 许可证”
- 单击有问题的许可证
- 选择“管理”下的“配置”
- 做出更改,然后单击“应用”
管理范围中的资源
你可以使用以下步骤管理特定 SQL Server 物理核心许可证范围内的资源:
- 选择“Azure Arc”
- 在“数据服务”下,选择“SQL Server 许可证”
- 单击有问题的许可证
- 在“管理”下选择“范围中的资源”
如果未将特定资源配置为使用此许可证(“应用物理核心许可证”列显示“否”),则可以更改:
- 在列表上选择特定资源
- 单击“应用许可证”选项卡。
- 阅读免责声明,然后单击“确认”。
列出 SQL Server 许可证范围内已启用 Arc 的服务器
此查询列出了许可证范围内所有已启用 Azure Arc 的服务器以及每个服务器的相关属性。
resources
| where type =~ 'Microsoft.HybridCompute/machines'
| where ('${scopeType}'!= 'Subscription' or subscriptionId == '${subscription}')
| where ('${scopeType}' != 'ResourceGroup' or (resourceGroup == '${resourceGroup.toLowerCase()}' and subscriptionId == '${subscription}'))
| extend status = tostring(properties.status)
| where status =~ 'Connected'
| join kind = leftouter
(
resources
| where type =~ 'Microsoft.HybridCompute/machines/extensions'
| where name == 'WindowsAgent.SqlServer' or name == 'LinuxAgent.SqlServer'
| extend machineId = substring(id, 0, indexof(id, '/extensions'))
| extend extensionId = id
)
on $left.id == $right.machineId
| where isnotnull(extensionId)
| project id, name, properties.status, resourceGroup, subscriptionId, Model = properties.detectedProperties.model, Manufacturer = properties.detectedProperties.manufacturer, kind, OSE = properties.osName, License_applied = properties1.settings.UsePhysicalCoreLicense.IsApplied
|order by name asc
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈