创建实例池 - Azure SQL 托管实例

适用于:Azure SQL 托管实例

本文介绍如何使用 Azure 门户、PowerShell 或 Azure CLI 创建 Azure SQL 托管实例的实例池,以及如何使用 Powershell 或 Azure CLI 将实例移入和移出池。

实例池可将具有共享资源的多个 SQL 托管实例部署到单个虚拟机,从而提供方便且经济高效的基础结构来迁移多个 SQL Server 实例,而无需将较小的计算密集型工作负荷合并到更大的 SQL 托管实例上。

先决条件

若要创建 SQL 托管实例池,应具备:

子网大小注意事项

使用 SQL 托管实例池时,请仔细规划子网的大小。 请参阅 确定 Azure SQL 托管实例所需的子网大小和范围 ,了解子网大小调整准则。

计算包含多个常规用途实例的一个实例池所需的 IP 地址数时,请使用以下公式:

2 * (5 + (3 * # of MIs)) + 5

# of MIs 是指计划预配的最大潜在实例数。 一个池中实例的最大可能数为 40。

创建实例池

可以使用 Azure 门户、PowerShell 或 Azure CLI 创建 SQL 托管实例池。 请考虑以下事项:

  • 目前只有标准系列 (Gen5) 或高级系列硬件上的常规用途服务层级可用。
  • 池名称只能包含小写字母、数字和连字符,且不能以连字符开头。
  • Azure 混合权益适用于实例池级别。 可以在创建池时设置许可证类型,并在创建池后更新许可证类型。

注释

资源名称(例如表名、数据库名)和资源标签中不得包含任何个人、敏感或机密信息。 你在这些字段中输入的数据不被视为客户数据。

重要

部署实例池的操作耗时较长,可能需要长达四个半小时。

若要在 Azure 门户中创建 SQL 托管实例池,请执行以下步骤:

  1. 转到 Azure SQL 中心。

  2. 在 Azure SQL 托管实例下,选择 “实例池 ”以打开 “实例池 ”窗格。

  3. 在 “实例池 ”窗格中,选择“ + 创建 ”以打开 “创建 Azure SQL 托管实例池 ”页。

    Azure SQL 中心的 Azure 门户的屏幕截图,其中显示了 Azure SQL 托管实例下的“创建”按钮和“Azure SQL 托管实例选项”窗口。

  4. 在 “创建 Azure SQL 托管实例池 ”页上:

    1. 在“基本信息”选项卡上,填写项目和实例详细信息。
    2. 使用“计算 + 存储”下的“配置实例池”打开“计算 + 存储”页,并选择池所使用的服务层级、计算硬件和 SQL Server 许可证。 使用“应用”保存计算设置,然后返回到“创建 Azure SQL 托管实例池”页。
    3. 选择现有虚拟网络,或在“网络”选项卡上配置新的虚拟网络。
    4. (可选)在“其他设置”选项卡上为池配置非默认维护时段。
    5. 在“查看 + 创建”选项卡上查看配置,然后选择“创建”以创建实例池。

    Azure 门户中“创建 Azure SQL 托管实例池”页的屏幕截图,其中已选择“配置实例池”。

  5. 可以从“通知”监视池部署。

创建 SQL 托管实例池后,可以使用 Azure 门户在池中 创建新实例 ,也可以使用 PowerShell 或 Azure CLI 将现有实例移到池 中。

在池中创建新实例

创建池后,可以使用 Azure 门户、PowerShell 或 Azure CLI 在池中创建新的 SQL 托管实例。

请考虑以下事项:

  • 必须为新的 SQL 托管实例指定许可证类型,并且它必须与池的许可证类型匹配。

若要使用 Azure 门户在池中创建新的 SQL 托管实例,请执行以下步骤:

  1. 转到 Azure 门户中的 实例池 ,选择要在其中创建实例的池,以打开池的 “概述”。
  2. 在“ 概述 ”窗格中,选择“ + 创建托管实例 ”以打开 “创建 Azure SQL 托管实例 ”页。

此外,在创建 SQL 托管实例时,您还可以选择所需的池:

  1. 转到 Azure SQL 中心。

  2. 在 Azure SQL 托管实例下,选择 SQL 托管实例 以打开 SQL 托管实例 窗格。

  3. 在 “SQL 托管实例 ”窗格中,选择“ + 创建 ”,然后选择 SQL 托管实例 产品/服务以打开 “创建 SQL 托管实例 ”页。

    Azure 门户中 Azure SQL 中心页的 SQL 托管实例页的屏幕截图,其中显示了“+创建”按钮。

在 “创建 Azure SQL 托管实例 ”页上,执行以下步骤:

  1. 在“创建 Azure SQL 托管实例”页的“基本信息”选项卡上:

    1. 选择包含现有实例池的资源组。
    2. 在“托管实例详细信息”下,对于“是否属于实例池?”选择“是”,以在实例池内创建新实例。
    3. 从“实例池”下拉列表中选择池。

    Azure 门户中“创建 Azure SQL 托管实例”页的屏幕截图,其中已选择属于实例池。

    从下拉列表中选择实例池后,您会看到实例的计算成本变为 0,因为计算成本包含在池的成本中。

  2. 在“创建 Azure SQL 托管实例”页上填写剩余的详细信息,以在池中创建实例。 有关详细信息,请参阅 快速入门:创建 Azure SQL 托管实例。

  3. 选择“查看 + 创建”以查看新实例的设置,然后使用“创建”在所选池中部署实例。

移动现有实例

可以使用 PowerShell 或 Azure CLI 将现有 SQL 托管实例移入和移出池,前提是:

  • 其与池位于同一资源组。
  • 其与池位于同一虚拟网络和子网上。
  • 其符合实例池资源限制。

将现有实例移入池中时,池级别的设置优先于实例级设置。 例如,实例继承在池级别设置的许可证类型和维护时段。 将实例移出池后,其会保留从池继承的设置。 唯一的例外是许可证类型,从实例池中删除实例时,许可证类型默认返回“LicenseIncluded”– 将实例移出池后,必须手动配置 Azure 混合权益和混合故障转移权限权益。

目前不支持使用 Azure 门户在池中移动现有实例。

若要使用 PowerShell 将 SQL 托管实例移到池中,请使用 Set-AzSqlInstance 时提供池名称:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

要将实例移出池,请提供空白的池名称:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

连接到池中的实例

可以选择使用专用终结点或公共终结点连接到池中的 SQL 托管实例。 若要使用专用终结点,需要使用 Azure SQL 托管实例的 Azure 专用链接。

若要使用公共终结点连接到池中的实例,需要启用终结点,然后允许网络安全组中的公共终结点流量。

创建数据库

为池中的 SQL 托管实例创建数据库与为单个实例创建数据库相同。 可以使用 Azure 门户、PowerShell 或 Azure CLI 创建新数据库。

若要使用 Azure 门户为现有 SQL 托管实例创建新数据库,请执行以下步骤:

  1. 转到 Azure 门户中的 SQL 托管实例。
  2. 在“概述”窗格上,从命令栏选择“+ 新建数据库”,打开“创建 Azure SQL 托管数据库”页。
  3. 提供新数据库的详细信息。
  4. 选择“查看 + 创建”以查看新的数据库配置,然后使用“创建”部署数据库。

获取池使用情况

你可以使用 Azure 门户、PowerShell 或 Azure CLI 确定池中的资源如何使用资源。

若要获取池中的实例列表,请使用 Azure 门户查看 “实例池 ”窗格。 选择池名称,在概述页上查看池中的实例:

Azure 门户中实例池的“概述”窗格的屏幕截图。

更新实例池

你可以使用 Azure 门户、Powershell 或 Azure CLI 更新现有数据库的设置。

在 Azure 门户的“实例池”窗格中选择你的实例后,使用“设置”下的“计算 + 存储”窗格更新池的许可证类型、vCore 大小和硬件类型。

Azure 门户中“计算 + 存储实例池”窗格的屏幕截图。

使用 Azure 门户中实例池页设置下的维护窗格,更新池的维护时段:

Azure 门户中“维护实例池”窗格的屏幕截图。

更新共用实例

如果尚未超过池资源限制,则可以使用 PowerShell 或 Azure CLI 修改池中实例的资源配置,

要修改池中实例的资源参数,请使用 Set-AzSqlInstance。

以下样本将 Instance1 的 vCore 更新为 8,并将存储大小更改为 512 GB:

$instancePoolParams = @{
    VCore = 8
    StorageSizeInGB = 512
    InstancePoolName = $instancePoolName
}

$instance1name | Set-AzSqlInstance @instancePoolParams

删除实例池

删除池中的所有实例或移出池后,可以使用 Azure 门户、PowerShell 或 Azure CLI 删除实例池。

可以通过转到“ 实例池 ”窗格、选择要删除的池,然后使用命令栏上的 “删除 ”按钮,在 Azure 门户中删除实例池。

还可以转到池的 “概述 ”页并使用命令栏上的 “删除 ”按钮来删除池。

实例池操作

下表显示了可用的实例池操作:

Command Azure 门户 PowerShell Azure CLI
创建实例池 是的 是的 是的
更新池属性 是的 是的 是的
检查池使用情况和属性 是的 是的 是的
删除实例池 是的 是的 是的
在池中创建新的托管实例 是的 是的 是的
将托管实例移入池中 否 是的 是的
从池中删除托管实例 是的 是的 是的
将托管实例移出池 否 是的 是的
在池内的实例中创建数据库 是的 是的 是的
从 SQL 托管实例中删除数据库 是的 是的 是的

要使用 PowerShell,请安装最新版 PowerShell Core,并按照说明安装 Azure PowerShell 模块。

可用的 PowerShell 命令:

Cmdlet Description
New-AzSqlInstancePool 创建实例池。
Get-AzSqlInstancePool 返回实例池的相关信息。
Set-AzSqlInstancePool 设置实例池的属性。
Remove-AzSqlInstancePool 删除实例池。
Get-AzSqlInstancePoolUsage 返回实例池使用情况的相关信息。

对于与池中的实例和单个实例相关的操作,请使用标准托管实例命令,但在对池中的实例使用这些命令时,必须填充实例池名称属性。

局限性

池中的 SQL 托管实例具有以下限制:

  • 池名称只能包含小写字母、数字和连字符,且不能以连字符开头。
  • 池中的所有实例均使用相同的许可模型。 当你为实例指定的许可模型与池的许可模型不同时,将使用池的许可模型。 当你将实例移出池时,它会自动切换为全付费许可证(LicenseType =“LicenseIncluded”)。 要更改许可模型,请手动激活 Azure 混合权益。
  • 共用实例必须属于同一子网和资源组。 只能在池的子网和同一资源组中将实例移入和移出池。
  • 不支持将实例池移到另一个子网。
  • 仅提供常规用途服务层。
  • 仅支持标准系列 (Gen5) 或高级系列硬件。 不支持高级系列内存优化硬件。
  • 池中实例的最大可能数为 40。
  • 只有删除或移出池中的所有实例后,才能删除实例池。
  • 你无法使用 Azure 门户将实例移入和移出池。 请改为使用 PowerShell 或 Azure CLI。
  • 池中的实例不支持以下 SQL 托管实例功能:

支持请求

在 Azure 门户中创建和管理 SQL 托管实例池的支持请求。

大规模管理许可证类型

如需审查拟议的许可类型变更,或将其应用于多个由 Azure Arc 资源支持的 Azure SQL 和 SQL Server,请参见“大规模管理 SQL 许可证类型”。 使用单个PowerShell脚本进行一次性或计划切换,或部署资源专用的Azure Policy示例,持续强制执行许可类型。