为 Azure SQL 托管实例配置现有虚拟网络

适用于:Azure SQL 托管实例

Azure SQL 托管实例必须仅部署在专用于托管实例的 Azure 虚拟网络和子网中。 如果现有虚拟网络和子网是根据 SQL 托管实例虚拟网络要求配置的,则可以使用现有虚拟网络和子网。

如果存在以下情况,可以使用本文中所述的脚本来验证和修改网络:

  • 仍未配置某个新子网。
  • 不确定该子网是否符合要求
  • 进行更改后想要检查子网是否仍符合网络要求

注意

只能在通过 Azure 资源管理器部署模型创建的虚拟网络中创建托管实例。 不支持通过经典部署模型创建的 Azure 虚拟网络。 根据确定 SQL 托管实例的子网大小一文中的指导计算子网大小。 在子网中部署资源后,无法调整子网大小。

创建托管实例后,可以将实例移到同一 Vnet 内的另一个子网或跨 vNet 移动,但不支持将实例或 VNet 移到另一个资源组或订阅。

验证并修改现有虚拟网络

如果希望在现有子网内创建托管实例,建议使用以下 PowerShell 脚本来准备子网:

$scriptUrlBase = 'https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/manage/azure-sql-db-managed-instance/delegate-subnet'

$parameters = @{
    subscriptionId = '<subscriptionId>'
    resourceGroupName = '<resourceGroupName>'
    virtualNetworkName = '<virtualNetworkName>'
    subnetName = '<subnetName>'
    }

Invoke-Command -ScriptBlock ([Scriptblock]::Create((iwr ($scriptUrlBase+'/delegateSubnet.ps1?t='+ [DateTime]::Now.Ticks)).Content)) -ArgumentList $parameters

该脚本通过三个步骤来准备子网:

  1. 验证:根据 SQL 托管实例的网络要求验证所选虚拟网络和子网。
  2. 确认:向用户显示为 SQL 托管实例部署准备子网而需要执行的一组更改。 同时请求用户同意。
  3. 准备:正确配置虚拟网络和子网。

后续步骤