Distribuera Azure SQL Managed Instance till en instanspool

GÄLLER FÖR: Azure SQL Managed Instance

Den här artikeln innehåller information om hur du skapar en instanspool och distribuerar Azure SQL Managed Instance till den.

Åtgärder för instanspool

I följande tabell visas tillgängliga åtgärder relaterade till instanspooler och deras tillgänglighet i Azure Portal, PowerShell och Azure CLI.

Kommando Azure Portal PowerShell Azure CLI
Skapa en instanspool Inga Ja Ja
Uppdatera en instanspool (begränsat antal egenskaper) Inga Ja Ja
Kontrollera användning och egenskaper för en instanspool Inga Ja Ja
Ta bort en instanspool Inga Ja Ja
Skapa en hanterad instans i en instanspool Inga Ja Inga
Uppdatera resursanvändningen för en hanterad instans Ja Ja Inga
Kontrollera användning och egenskaper för en hanterad instans Ja Ja Inga
Ta bort en hanterad instans från poolen Ja Ja Inga
Skapa en databas i instansen i poolen Ja Ja Inga
Ta bort en databas från SQL Managed Instance Ja Ja Inga

Om du vill använda PowerShell installerar du den senaste versionen PowerShell Coreoch följer instruktionerna för att installera Azure PowerShell modulen.

Tillgängliga PowerShell-kommandon:

Cmdlet Beskrivning
New-AzSqlInstancePool Skapar en SQL Managed Instance-pool.
Get-AzSqlInstancePool Returnerar information om en instanspool.
Set-AzSqlInstancePool Anger egenskaper för en instanspool i SQL Managed Instance.
Remove-AzSqlInstancePool Tar bort en instanspool i SQL Managed Instance.
Get-AzSqlInstancePoolUsage Returnerar information om SQL poolanvändning för hanterad instans.

För åtgärder som rör både instanser i pooler och enskilda instanser använder du standardkommandonafö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.

Distributionsprocess

Om du vill distribuera en hanterad instans till en instanspool måste du först distribuera instanspoolen, vilket är en engångsåtgärd där varaktigheten är densamma som när du distribuerar en enskild instans som skapats i ett tomt undernät. Därefter kan du distribuera en hanterad instans till poolen, vilket är en relativt snabb åtgärd som vanligtvis tar upp till fem minuter. Instanspoolparametern måste uttryckligen anges som en del av den här åtgärden.

I den offentliga förhandsversionen stöds båda åtgärderna endast med PowerShell och Azure Resource Manager mallar. Den Azure Portal upplevelsen är inte tillgänglig för närvarande.

När en hanterad instans har distribuerats till en pool kan du använda Azure Portal för att ändra dess egenskaper på sidan prisnivå.

Skapa ett virtuellt nätverk med ett undernät

Om du vill placera flera instanspooler i samma virtuella nätverk kan du läsa följande artiklar:

Skapa en instanspool

När du har slutfört de föregående stegen är du redo att skapa en instanspool.

Följande begränsningar gäller för instanspooler:

  • Endast Generell användning och Gen5 är tillgängliga i offentlig förhandsversion.
  • Poolnamnet får bara innehålla gemener, siffror och bindestreck och får inte börja med bindestreck.
  • Om du vill använda Azure Hybrid-förmån tillämpas den på instanspoolnivå. Du kan ange licenstypen när poolen skapas eller uppdatera den när som helst efter att den har skapats.

Viktigt

Att distribuera en instanspool är en långvarig åtgärd som tar cirka 4,5 timmar.

Så här hämtar du nätverksparametrar:

$virtualNetwork = Get-AzVirtualNetwork -Name "miPoolVirtualNetwork" -ResourceGroupName "myResourceGroup"
$subnet = Get-AzVirtualNetworkSubnetConfig -Name "miPoolSubnet" -VirtualNetwork $virtualNetwork

Så här skapar du en instanspool:

$instancePool = New-AzSqlInstancePool `
  -ResourceGroupName "myResourceGroup" `
  -Name "mi-pool-name" `
  -SubnetId $subnet.Id `
  -LicenseType "LicenseIncluded" `
  -VCore 8 `
  -Edition "GeneralPurpose" `
  -ComputeGeneration "Gen5" `
  -Location "westeurope"

Viktigt

Eftersom distributionen av en instanspool är en långvarig åtgärd måste du vänta tills den har slutförts innan du kör något av följande steg i den här artikeln.

Skapa en hanterad instans

Efter den lyckade distributionen av instanspoolen är det dags att skapa en hanterad instans i den.

Kör följande kommando för att skapa en hanterad instans:

$instanceOne = $instancePool | New-AzSqlInstance -Name "mi-one-name" -VCore 2 -StorageSizeInGB 256

Det tar några minuter att distribuera en instans i en pool. När den första instansen har skapats kan ytterligare instanser skapas:

$instanceTwo = $instancePool | New-AzSqlInstance -Name "mi-two-name" -VCore 4 -StorageSizeInGB 512

Skapa en databas

Om du vill skapa och hantera databaser i en hanterad instans som finns i en pool använder du kommandona för en instans.

Så här skapar du en databas i en hanterad instans:

$poolinstancedb = New-AzSqlInstanceDatabase -Name "mipooldb1" -InstanceName "poolmi-001" -ResourceGroupName "myResourceGroup"

Hämta poolanvändning

Så här hämtar du en lista över instanser i en pool:

$instancePool | Get-AzSqlInstance

Så här hämtar du resursanvändning för pooler:

$instancePool | Get-AzSqlInstancePoolUsage

Så här får du en detaljerad användningsöversikt över poolen och instanserna i den:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Så här listar du databaserna i en instans:

$databases = Get-AzSqlInstanceDatabase -InstanceName "pool-mi-001" -ResourceGroupName "resource-group-name"

Anteckning

Information om hur du kontrollerar gränserna för antalet databaser per instanspool och den hanterade instans som distribueras i poolen finns i avsnittet Resursbegränsningar för instanspooler.

Skala

När du har fyllt i en hanterad instans med databaser kan du komma till instansgränserna för lagring eller prestanda. I så fall kan du skala din instans om poolanvändningen inte har överskridits. Skalning av en hanterad instans i en pool är en åtgärd som tar några minuter. Förutsättningen för skalning är tillgängliga virtuella kärnor och lagring på instanspoolnivå.

Så här uppdaterar du antalet virtuella kärnor och lagringsstorleken:

$instanceOne | Set-AzSqlInstance -VCore 8 -StorageSizeInGB 512 -InstancePoolName "mi-pool-name"

Så här uppdaterar du lagringsstorleken:

$instance | Set-AzSqlInstance -StorageSizeInGB 1024 -InstancePoolName "mi-pool-name"

Anslut

Följande två steg krävs för att ansluta till en hanterad instans i en pool:

  1. Aktivera den offentliga slutpunkten för instansen.
  2. Lägg till en regel för inkommande trafik i nätverkssäkerhetsgruppen (NSG).

När båda stegen är klara kan du ansluta till instansen med hjälp av en offentlig slutpunktsadress, port och autentiseringsuppgifter som angavs när instansen skapades.

Aktivera den offentliga slutpunkten

Du kan aktivera den offentliga slutpunkten för en instans via Azure Portal eller med hjälp av följande PowerShell-kommando:

$instanceOne | Set-AzSqlInstance -InstancePoolName "pool-mi-001" -PublicDataEndpointEnabled $true

Den här parametern kan även anges när instansen skapas.

Lägga till en regel för inkommande trafik i nätverkssäkerhetsgruppen

Det här steget kan göras via Azure Portal eller med PowerShell-kommandon och kan göras när som helst när som helst när undernätet har förberetts för den hanterade instansen.

Mer information finns i Tillåt trafik för offentliga slutpunkter i nätverkssäkerhetsgruppen.

Flytta en befintlig enskild instans till en pool

Att flytta instanser till och från en pool är en av begränsningarna i den offentliga förhandsversionen. En lösning är beroende av återställning till tidpunkt av databaser från en instans utanför en pool till en instans som redan finns i en pool.

Båda instanserna måste finnas i samma prenumeration och region. Återställning mellan regioner och prenumerationer stöds inte för närvarande.

Den här processen har en stilleståndsperiod.

Så här flyttar du befintliga databaser:

  1. Pausa arbetsbelastningar på den hanterade instans som du migrerar från.

  2. Generera skript för att skapa systemdatabaser och köra dem på den instans som finns i instanspoolen.

  3. Gör en återställning till en tidpunkt av varje databas från den enskilda instansen till instansen i poolen.

    $resourceGroupName = "my resource group name"
    $managedInstanceName = "my managed instance name"
    $databaseName = "my source database name"
    $pointInTime = "2019-08-21T08:51:39.3882806Z"
    $targetDatabase = "name of the new database that will be created"
    $targetResourceGroupName = "resource group of instance pool"
    $targetInstanceName = "pool instance name"
    
    Restore-AzSqlInstanceDatabase -FromPointInTimeBackup `
      -ResourceGroupName $resourceGroupName `
      -InstanceName $managedInstanceName `
      -Name $databaseName `
      -PointInTime $pointInTime `
      -TargetInstanceDatabaseName $targetDatabase `
      -TargetResourceGroupName $targetResourceGroupName `
      -TargetInstanceName $targetInstanceName
    
  4. Peka ditt program till den nya instansen och återuppta dess arbetsbelastningar.

Om det finns flera databaser upprepar du processen för varje databas.

Nästa steg