Skapa en instanspool (förhandsversion) – Azure SQL Managed Instance

Gäller för:Azure SQL Managed Instance

I den här artikeln lär du dig hur du skapar en instanspool för Azure SQL Managed Instance samt hur du flyttar instanser till och från poolen.

Instanspooler gör det möjligt att distribuera flera instanser med delade resurser till en enda virtuell dator, vilket ger en bekväm och kostnadseffektiv infrastruktur för att migrera flera SQL Server-instanser utan att behöva konsolidera mindre och mindre beräkningsintensiva arbetsbelastningar till en större SQL Managed Instance.

Kommentar

Instanspooler för Azure SQL Managed Instance är för närvarande i förhandsversion.

Förutsättningar

Om du vill skapa en instanspool bör du ha:

Överväganden för undernätsstorlek

Planera noggrant storleken på ditt undernät om du planerar att använda en instanspool. Se Fastställ nödvändig undernätsstorlek och -intervall för riktlinjer för storleksändring av undernät.

Använd följande formel när du beräknar antalet IP-adresser som krävs av en instanspool som innehåller flera generell användningsinstanser:

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

# of MIs Refererar till det maximala potentiella antalet instanser som du planerar att etablera. Det maximala antalet instanser i poolen är 40.

Skapa instanspool

Du kan skapa en instanspool med Hjälp av PowerShell eller Azure CLI. Tänk på följande:

  • Endast tjänstnivån Generell användning på standardserie (Gen5) eller premium-seriens maskinvara är för närvarande tillgänglig.
  • Poolnamnet kan bara innehålla gemener, siffror och bindestreck och kan inte börja med ett bindestreck.
  • Azure Hybrid-förmån tillämpas på instanspoolsnivå. Du kan ange licenstypen när du skapar poolen och uppdatera licenstypen när poolen har skapats.

Viktigt!

Att distribuera en instanspool är en tidskrävande åtgärd som kan ta upp till 4,5 timmar.

Om du vill skapa instanspoolen använder du New-AzSqlInstancePool.

Tänk på följande:

  • För LicenseTypeanvänder du BasePrice för Azure Hybrid-förmån eller LicenseIncluded om du inte har en SQL Server-licens som kan användas för Azure Hybrid-förmån rabatt.
  • Använd Get-AzLocation | select displayname, location för att hämta en lista över regioner där instanspooler är tillgängliga.

Skapa en ny instanspool med 8 virtuella kärnor på standardseriemaskinvara (Gen5) genom att köra följande exempelskript:

# Identify the SubnetId
$virtualNetwork = Get-AzVirtualNetwork -Name <vnet name> -ResourceGroupName <resource group name>
$miSubnet = Get-AzVirtualNetworkSubnetConfig -Name <subnet name> -VirtualNetwork $virtualNetwork
$miSubnetConfigId = $miSubnet.Id

# Create the instance
$instancePool = New-AzSqlInstancePool `
    -ResourceGroupName  <resource group name> `
    -Name <instance pool name> `
    -SubnetId $miSubnetConfigId `
    -LicenseType LicenseIncluded `
    -VCore 8 `
    -Edition GeneralPurpose `
    -ComputeGeneration Gen5 `
    -Location <region>

Skapa en ny instans i poolen

När poolen har skapats kan du skapa en ny instans i poolen med hjälp av PowerShell eller Azure CLI.

Om du vill identifiera poolparametrar använder du Get-AzSqlInstancePool och skapar sedan din instans i den specifika poolen med New-AzSqlInstance.

Skapa en ny instans i poolen genom att köra följande exempelskript:

$adminCredential = Get-Credential
$instancePool = Get-AzSqlInstancePool -ResourceGroupName <resource group name> -Name <instance pool name>

$instance01 = $instancePool | New-AzSqlInstance `
    -Name $instance01`
    -VCore 2 `
    -StorageSizeInGB 32 `
    -AdministratorCredential $adminCredential `

Flytta befintlig instans

Du kan flytta en befintlig instans till och från en pool med hjälp av PowerShell eller Azure CLI om:

  • Den finns i samma resursgrupp som poolen.
  • Den finns i samma virtuella nätverk och undernät som poolen.
  • Den passar instanspoolens resursgränser.

När en befintlig instans flyttas till en pool har inställningar på poolnivå företräde framför inställningar på instansnivå. Instansen ärver till exempel den licenstyp och underhållsperiod som angetts på poolnivå. När en instans flyttas från poolen behåller den de inställningar som den ärvt från poolen. Det enda undantaget är med licenstypen, som som standard återgår till "LicenseIncluded" när en instans tas bort från instanspoolen – Azure Hybrid-förmån och hybrid redundansrättsförmånen måste konfigureras manuellt när en instans har flyttats från en pool.

Om du vill flytta en instans till en pool anger du poolnamnet när du använder Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Om du vill flytta en instans från en pool anger du ett tomt poolnamn:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Anslut till instans i en pool

Om du vill ansluta till en instans i en pool aktiverar du först den offentliga slutpunkten för instansen och tillåter sedan offentlig slutpunktstrafik i nätverkssäkerhetsgruppen.

Om du vill aktivera den offentliga slutpunkten för en instans anger du -PublicDataEndpointEnabled till true när du uppdaterar instansegenskaper med Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName -PublicDataEndpointEnabled $true

Skapa en -databas

Att skapa en databas för en instans i en pool är detsamma som att skapa en databas för en enda instans. Du kan skapa en ny databas med hjälp av PowerShell eller Azure CLI.

Om du vill skapa en ny databas för din instans använder du New-AzSqlInstanceDatabase:

New-AzSqlInstanceDatabase -Name <database name> -InstanceName <instance name> -ResourceGroupName <resource group> 

Hämta poolanvändning

Du kan använda PowerShell för att avgöra hur resurser används i en pool.

Om du vill hämta en lista över instanser i en pool använder du Get-AzSqlInstance:

$instancePool | Get-AzSqlInstance

Om du vill hämta användning av poolresurser använder du Get-AzSqlInstancePoolUsage:

$instancePool| Get-AzSqlInstancePoolUsage

Du kan lägga till parametern -ExpandChildren för att få en detaljerad översikt över poolen och instanserna i den:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Om du vill visa en lista över databaserna i en instans använder du Get-AzSqlInstanceDatabase:

$databases = Get-AzSqlInstanceDatabase -InstanceName $instance01Name  -ResourceGroupName $resourceGroupName

Kommentar

Om du vill kontrollera gränserna för de instanser som distribueras till en pool och databaser per instanspool granskar du resursgränser.

Uppdatera en instanspool

Du kan använda PowerShell för att göra ändringar i instanspoolsgränserna.

Följande exempelskript ändrar licenstyp, vCore-storlek och maskinvarutyp:

Ändra licenstyp:

$instancePool | Set-AzSqlInstancePool -LicenseType BasePrice -VCores 16 -ComputeGeneration Gen8

Du kan också fastställa tillgängliga scheman för underhållsperioder:

# 'Available maintenance schedules in $location'
$configurations = Get-AzMaintenancePublicConfiguration
$configurations | ?{ $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance"} 
$maintenanceWindowOptions = $configurations | ?{ $_.Location -eq $location -and $_.MaintenanceScope -eq "SQLManagedInstance"}

Du kan sedan ändra underhållsfönstret genom att ange ett fönsteralternativ, till exempel:

$instancePool | Set-AzSqlInstancePool -MaintenanceConfigurationId $maintenanceWindowOptions[1].Id

Uppdatera en poolinstans

Om poolresursgränserna inte har överskridits kan du ändra resurskonfigurationer för en instans i en pool med hjälp av PowerShell eller Azure CLI.

Om du vill ändra resursparametrar för en instans i en pool använder du Set-AzSqlInstance.

Följande skript uppdaterar till exempel de virtuella kärnorna till 8 och ändrar lagringsstorleken till 512 GB för Instance1:

$instance1name | Set-AzSqlInstance -VCore 8 -StorageSizeInGB 512 -InstancePoolName $instancePoolName

Ta bort en instanspool

Du kan ta bort en instanspool med hjälp av PowerShell eller Azure CLI, när alla instanser i poolen antingen har tagits bort eller flyttats från poolen.

Om du vill ta bort en instanspool använder du Remove-AzSqlInstancePool.

Följande exempelskript tar bort en tom instanspool:

Remove-AzSqlInstancePool -ResourceGroupName <resource group name -Name <instance pool name>

Instanspoolsåtgärder

I följande tabell visas tillgängliga instanspoolsåtgärder:

Command Azure Portal PowerShell Azure CLI
Skapa en instanspool Nej Ja Ja
Uppdatera poolegenskaper Nej Ja Ja
Kontrollera användning och egenskaper för en pool Ja Ja Ja
Ta bort en instanspool Ja Ja Ja
Skapa en hanterad instans i en pool Nej Ja Ja
Flytta en hanterad instans till en pool Nej Ja Ja
Ta bort en hanterad instans från en pool Ja Ja Ja
Flytta en hanterad instans från en pool Nej Ja Ja
Skapa en databas i en instans i en pool Ja Ja Ja
Ta bort en databas från SQL Managed Instance Ja Ja Ja

Om du vill använda PowerShell installerar du den senaste versionen av PowerShell Core och följer anvisningarna för att installera Azure PowerShell-modulen.

Tillgängliga PowerShell-kommandon:

Cmdlet beskrivning
New-AzSqlInstancePool Skapar en instanspool.
Get-AzSqlInstancePool Returnerar information om en instanspool.
Set-AzSqlInstancePool Anger egenskaper för en instanspool.
Remove-AzSqlInstancePool Tar bort en instanspool.
Get-AzSqlInstancePoolUsage Returnerar information om användning av instanspooler.

För åtgärder som rör både instanser i pooler och enskilda instanser använder du standardkommandona för hanterad instans, men egenskapen för instanspoolens namn måste fyllas i när du använder dessa kommandon för en instans i en pool.

Begränsningar

Under den offentliga förhandsversionen har instanser i en pool följande begränsningar:

  • Poolnamnet kan bara innehålla gemener, siffror och bindestreck och kan inte börja med ett bindestreck.
  • Alla instanser i poolen använder samma licensieringsmodell. När du anger en licensmodell för en instans som skiljer sig från licensmodellen för poolen används poollicensmodellen. När instansen flyttas från poolen växlar den automatiskt till en fullständig betald licens (LicenseType = 'LicenseIncluded'). Aktivera Azure Hybrid-förmån eller hybrid redundansrättsförmånen manuellt för att ändra licensieringsmodellen.
  • Poolinstanser måste tillhöra samma undernät och resursgrupp. Att flytta en instans till och från poolen är bara möjligt i undernätet för poolen och samma resursgrupp.
  • Endast tjänstnivån Generell användning är tillgänglig på Standard-serien (Gen5) eller premium-seriens maskinvara. Den Affärskritisk tjänstnivån och den minnesoptimerade maskinvaran i Premium-serien är inte tillgänglig.
  • Det maximala antalet instanser i poolen är 40.
  • En instanspool kan bara tas bort när alla instanser i poolen antingen har tagits bort eller flyttats från poolen.
  • Du kan inte använda Azure-portalen för att:
    • Konfigurera instanspoolen. Använd PowerShell eller Azure CLI i stället.
    • Flytta instanser till och från poolen. Använd PowerShell eller Azure CLI i stället.
  • Följande SQL Managed Instance-funktioner stöds inte när instanser finns i en pool:

Supportförfrågningar

Skapa och hantera supportbegäranden för instanspooler i Azure-portalen.

Om du har problem med att skapa eller ta bort en instans måste du ange instanspooler i fältet Problemundertyp .

Screenshot of the Instance pools support request in the Azure portal.

Om du har problem som rör en enda hanterad instans eller databas i en pool bör du skapa en vanlig supportbegäran för Azure SQL Managed Instance.

Om du vill skapa större SQL Managed Instance-distributioner (med eller utan instanspooler) kan du behöva skaffa en större regional kvot. Mer information finns i Begära kvotökningar för Azure SQL Database. Distributionslogik för instanspooler jämför den totala förbrukningen av virtuella kärnor på poolnivå med din kvot för att avgöra om du får skapa nya resurser utan att öka kvoten ytterligare.