你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建实例池(预览版)– Azure SQL 托管实例

适用于: Azure SQL 托管实例

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

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

注意

Azure SQL 托管实例的实例池当前处于预览状态。

先决条件

要创建实例池,应具有:

子网大小注意事项

计划使用实例池时,请仔细规划子网大小。 有关子网调整大小指南,请参阅确定所需的子网大小和范围

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

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

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

创建实例池

可以使用 Azure 门户、PowerShell 或 Azure CLI 来创建实例池。 考虑以下情况:

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

重要

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

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

  1. Azure 门户中搜索实例池,然后选择实例池服务以打开“实例池”页:

    在 Azure 门户中搜索实例池的屏幕截图。

  2. 在“实例池”页上,选择“+ 创建”以打开“创建 Azure SQL 托管实例池”页:

    Azure 门户中实例池页的屏幕截图,其中已选择“+创建”。

  3. 创建 Azure SQL 托管实例池上:

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

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

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

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

在池中创建新实例

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

考虑以下情况:

  • 必须为新实例指定许可证类型,而且实例的许可证类型必须与池的许可证类型匹配。

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

  1. 在 Azure 门户中,转到 Azure SQL 页面。

  2. Azure SQL 页上,选择“+ 创建”以打开“选择 SQL 部署选项”。

  3. 在“SQL 托管实例”磁贴上,选择“单实例”作为资源类型,然后选择“创建”来打开“创建 Azure SQL 托管实例”页。

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

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

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

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

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

移动现有实例

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

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

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

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

若要使用 PowerShell 将实例移入池中,请在使用 Set-AzSqlInstance 时提供池名称:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

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

$instance01 | Set-AzSqlInstance -InstancePoolName ''

连接到池中的实例

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

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

创建数据库

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

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

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

获取池使用情况

可以使用 PowerShell 来确定池内资源的使用情况。

要获取池中的实例列表,请使用 Get-AzSqlInstance

$instancePool | Get-AzSqlInstance

要获取池资源使用状况,请使用 Get-AzSqlInstancePoolUsage

$instancePool| Get-AzSqlInstancePoolUsage

可以添加 -ExpandChildren 参数以获取池及其内部实例的详细概述:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

要列出实例中的数据库,请使用 Get-AzSqlInstanceDatabase

$databaseParams = @{
    InstanceName = $instance01Name
    ResourceGroupName = $resourceGroupName
}

$databases = Get-AzSqlInstanceDatabase @databaseParams

注意

要检查部署到池的实例限制以及每个实例池的数据库限制,请查看资源限制

更新实例池

可以使用 PowerShell 或 Azure CLI 更新现有实例池的设置。

可以使用 PowerShell 对实例池限制进行更改。

以下示例脚本更改了许可证类型、vCore 大小和硬件类型:

更改许可证类型:

$instancePoolParams = @{
    LicenseType = "BasePrice"
    VCores = 16
    ComputeGeneration = "Gen8"
}
$instancePool | Set-AzSqlInstancePool @instancePoolParams

还可以确定可用的维护时段计划:

$parameters = @{
    Location = $location
    MaintenanceScope = "SQLManagedInstance"
}
 
$configurations = Get-AzMaintenancePublicConfiguration @parameters
$maintenanceWindowOptions = $configurations | Where-Object { $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance" }

然后可以指定时段选项来更改维护时段,例如:

$instancePoolParams = @{
    MaintenanceConfigurationId = $maintenanceWindowOptions[1].Id
}

$instancePool | Set-AzSqlInstancePool @instancePoolParams

更新共用实例

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

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

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

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

$instance1name | Set-AzSqlInstance @instancePoolParams

删除实例池

一旦将池中的所有实例删除或移出池,就可以使用 PowerShell 或 Azure CLI 删除实例池。

要删除实例池,请使用 Remove-AzSqlInstancePool

以下示例脚本删除了空实例池:

$params = @{
    ResourceGroupName = "<resource group name>"
    Name = "<instance pool name>"
}

Remove-AzSqlInstancePool @params

实例池操作

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

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

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

可用的 PowerShell 命令

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

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

限制

在公共预览期间,池中的实例具有以下限制:

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

支持请求

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

要在 Azure 门户中创建新的支持请求,请执行以下步骤:

  1. 在 Azure 门户中打开“新建支持请求”页。

  2. 在“新建支持请求”中提供以下信息:

    1. 对于“问题类型”,选择 Technical
    2. 从下拉列表中选择相应的订阅
    3. 对于“服务类型”,选择 SQL Managed Instance
    4. 对于“资源”,如果 SQL 托管实例已存在,请提供该实例的名称,如果无法在池中部署实例,则选择“常规问题”。
    5. 对于“摘要”,请键入 instance pools
    6. 对于“问题类型”,请选择 Create, Scale, Stop, Start, or Delete Resources
    7. 对于“问题子类型”,请选择 Instance Pools

    Azure 门户中“实例池支持请求”的屏幕截图。

  3. 在后续页上选择“下一步”,直到能够创建支持请求。

要创建更大型的 SQL 托管实例部署(无论是否具有实例池),都可能需要调高区域配额。 有关详细信息,请参阅请求增加 Azure SQL 数据库的配额。 实例池的部署逻辑会将在池级别消耗的 vCore 总数与你的配额进行比较,确定你是否可在不进一步增加配额的情况下创建新资源。