Creare un pool di istanze (anteprima) - Istanza gestita di SQL di Azure

Si applica a:Istanza gestita di SQL di Azure

Questo articolo illustra come creare un pool di istanze per Istanza gestita di SQL di Azure, nonché come spostare le istanze all'interno e all'esterno del pool.

I pool di istanze consentono di distribuire più istanze con risorse condivise in una singola macchina virtuale, che offre un'infrastruttura conveniente e conveniente per eseguire la migrazione di più istanze di SQL Server senza dover consolidare carichi di lavoro più piccoli e meno a elevato utilizzo di calcolo in un’Istanza gestita di SQL più grande.

Nota

I pool di istanze per l’istanza gestita di SQL di Azure è attualmente in anteprima.

Prerequisiti

Per creare un pool di istanze, è necessario disporre di:

Considerazioni sulle dimensioni della subnet

Pianificare attentamente le dimensioni della subnet se si prevede di usare un pool di istanze. Vedere Determinare le dimensioni e l'intervallo di subnet necessari per le linee guida per il ridimensionamento della subnet.

Usare la formula seguente per calcolare il numero di indirizzi IP richiesti da un pool di istanze contenente più istanze per utilizzo generico:

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

# of MIs si riferisce al numero massimo di istanze di cui si intende effettuare il provisioning. Il numero massimo possibile di istanze nel pool è 40.

Creare il pool di istanze

È possibile creare un pool di istanze usando PowerShell o l'interfaccia della riga di comando di Azure. Considerare quanto segue:

  • Attualmente è disponibile solo il livello di servizio Per utilizzo generico su hardware serie Standard (Gen5) o Premium.
  • Il nome del pool può contenere solo lettere minuscole, numeri e trattini e non può iniziare con un trattino.
  • Vantaggio Azure Hybrid viene applicato a livello di pool di istanze. È possibile impostare il tipo di licenza quando si crea il pool e aggiornare il tipo di licenza dopo la creazione del pool.

Importante

La distribuzione di un pool di istanze è un'operazione a esecuzione prolungata che richiede circa 4,5 ore.

Per creare il pool di istanze, usare New-AzSqlInstancePool.

Considerare quanto segue:

  • Per LicenseType, usare BasePrice per il Vantaggio Azure Hybrid o LicenseIncluded se non si dispone di una licenza di SQL Server che può essere usata per lo sconto Vantaggio Azure Hybrid.
  • Usare Get-AzLocation | select displayname, location per ottenere un elenco di aree in cui sono disponibili pool di istanze.

Creare un nuovo pool di istanze con 8 vCore su hardware serie standard (Gen5) eseguendo lo script di esempio seguente:

# 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>

Creare una nuova istanza all'interno del pool

Dopo aver creato il pool, è possibile creare una nuova istanza al suo interno usando PowerShell o l'interfaccia della riga di comando di Azure.

Per identificare i parametri del pool, usare Get-AzSqlInstancePool e quindi creare l'istanza all'interno del pool specifico con New-AzSqlInstance.

Creare una nuova istanza nel pool eseguendo lo script di esempio seguente:

$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 `

Spostare l’istanza esistente

È possibile spostare un'istanza esistente all'interno e all'esterno di un pool usando PowerShell o l'interfaccia della riga di comando di Azure se:

  • Si trova nello stesso gruppo di risorse del pool.
  • Si tratta della stessa rete virtuale e della stessa subnet del pool.
  • Soddisfa i limiti delle risorse del pool di istanze.

Quando un'istanza esistente viene spostata in un pool, le impostazioni a livello di pool hanno la precedenza sulle impostazioni a livello di istanza. Ad esempio, l'istanza eredita il tipo di licenza e la finestra di manutenzione impostata a livello di pool. Quando un'istanza viene spostata all'esterno del pool, mantiene le impostazioni ereditate dal pool. L'unica eccezione è rappresentata dal tipo di licenza, che per impostazione predefinita torna a "LicenseIncluded" quando un'istanza viene rimossa dal pool di istanze. Il Vantaggio Azure Hybrid e il vantaggio dei diritti di failover ibridi devono essere configurati manualmente dopo che un'istanza viene spostata da un pool.

Per spostare un'istanza in un pool, specificare il nome del pool quando si usa Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Per spostare un'istanza da un pool, specificare un nome di pool vuoto :

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Connettersi a un'istanza all'interno di un pool

Per connettersi a un'istanza in un pool, abilitare prima l'endpoint pubblico per l'istanza e quindi consentire il traffico degli endpoint pubblici nel gruppo di sicurezza di rete.

Per abilitare l'endpoint pubblico per un'istanza, impostare -PublicDataEndpointEnabled su true quando si aggiornano le proprietà dell'istanza con Set-AzSqlInstance:

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

Creazione di un database

La creazione di un database per un'istanza all'interno di un pool equivale alla creazione di un database per una singola istanza. È possibile creare un nuovo database usando PowerShell o l'interfaccia della riga di comando di Azure.

Per creare un nuovo database per l'istanza, usare New-AzSqlInstanceDatabase:

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

Ottenere l'utilizzo del pool

È possibile usare PowerShell per determinare come vengono usate le risorse all'interno di un pool.

Per ottenere un elenco di istanze all'interno di un pool, usare Get-AzSqlInstance:

$instancePool | Get-AzSqlInstance

Per ottenere l'utilizzo delle risorse del pool, usare Get-AzSqlInstancePoolUsage:

$instancePool| Get-AzSqlInstancePoolUsage

È possibile aggiungere il parametro -ExpandChildren per ottenere una panoramica dettagliata del pool e delle istanze al suo interno:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Per elencare i database in un'istanza, usare Get-AzSqlInstanceDatabase:

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

Nota

Per controllare i limiti delle istanze distribuite in un pool e i database per pool di istanze, esaminare i limiti delle risorse.

Aggiornare un pool di istanze

È possibile usare PowerShell per apportare modifiche ai limiti del pool di istanze.

Lo script di esempio seguente modifica il tipo di licenza, le dimensioni vCore e il tipo di hardware:

Cambiare tipo di licenza:

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

È anche possibile determinare le pianificazioni della finestra di manutenzione disponibili:

# '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"}

È quindi possibile modificare la finestra di manutenzione specificando un'opzione di finestra, ad esempio:

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

Aggiornare un'istanza in pool

Se i limiti delle risorse del pool non sono stati superati, è possibile modificare le configurazioni delle risorse per un'istanza all'interno di un pool usando PowerShell o l'interfaccia della riga di comando di Azure,

Per modificare i parametri delle risorse per un'istanza all'interno di un pool, usare Set-AzSqlInstance.

Ad esempio, lo script seguente aggiorna i vCore a 8 e modifica le dimensioni di archiviazione a 512 GB per Instance1:

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

Eliminare un pool di istanze

Dopo aver eliminato tutte le istanze del pool o averle spostate all'esterno del pool, è possibile eliminare un pool di istanze usando PowerShell o l'interfaccia della riga di comando di Azure.

Per eliminare un pool di istanze, usare Remove-AzSqlInstancePool.

Lo script di esempio seguente elimina un pool di istanze vuoto:

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

Operazioni dei pool di istanze

La tabella seguente illustra le operazioni disponibili del pool di istanze:

Comando Azure portal PowerShell Interfaccia della riga di comando di Azure
Creare un pool di istanze No
Aggiornare le proprietà del pool No
Controllare l'uso e le proprietà di un pool
Eliminare un pool di istanze
Creare un'istanza gestita all'interno del pool No
Spostare un'istanza gestita in un pool No
Eliminare un'istanza gestita da un pool
Spostare un'istanza gestita fuori da un pool No
Creare un database nell'istanza all’interno di un pool
Eliminare un database da un'istanza gestita di SQL

Per usare PowerShell, installare l’ultima versione di PowerShell Core e seguire le istruzioni per installare il modulo Azure PowerShell.

Comandi di PowerShell disponibili:

Cmdlet Descrizione
New-AzSqlInstancePool Crea un pool di istanze.
Get-AzSqlInstancePool Restituisce informazioni sul pool di istanze.
Set-AzSqlInstancePool Imposta le proprietà di un pool di istanze.
Remove-AzSqlInstancePool Rimuove un pool di istanze.
Get-AzSqlInstancePoolUsage Restituisce informazioni sull'uso del pool di istanze di database.

Per le operazioni correlate alle istanze sia all'interno di pool che singole, usare i comandi per istanze gestite standard. La proprietà instance pool name deve essere popolata quando si usano questi comandi per un'istanza in un pool.

Limiti

Durante l'anteprima pubblica, le istanze in un pool presentano le limitazioni seguenti:

  • Il nome del pool può contenere solo lettere minuscole, numeri e trattini e non può iniziare con un trattino.
  • Tutte le istanze nel pool usano lo stesso modello di licenza. Quando si specifica un modello di licenza per un'istanza diversa dal modello di licenza per il pool, viene usato il modello di licenza del pool. Quando l'istanza viene spostata all'esterno del pool, passa automaticamente a una licenza a pagamento completa (LicenseType = 'LicenseIncluded'). Attivare manualmente il Vantaggio Azure Hybrid o il vantaggio dei diritti di failover ibridi per modificare il modello di licenza.
  • Le istanze in pool devono appartenere alla stessa subnet e allo stesso gruppo di risorse. Lo spostamento di un'istanza all'interno e all'esterno del pool è possibile solo all'interno della subnet del pool e dello stesso gruppo di risorse.
  • Solo il livello di servizio Per utilizzo generico è disponibile su hardware serie standard (Gen5) o premium. Il livello di servizio Per utilizzo generico di nuova generazione, il livello di servizio Business Critical e l'hardware ottimizzato per la memoria premium non sono disponibili.
  • Il numero massimo possibile di istanze nel pool è 40.
  • Un pool di istanze può essere eliminato solo dopo che tutte le istanze nel pool vengono eliminate o spostate all'esterno del pool.
  • Non è possibile usare il portale di Azure per:
    • Configurano il pool dell’istanza. Usare PowerShell o l'interfaccia della riga di comando di Azure.
    • Spostare le istanze all'interno e all'esterno del pool. Usare PowerShell o l'interfaccia della riga di comando di Azure.
  • Le funzionalità di Istanza gestita di SQL seguenti non sono supportate quando le istanze si trovano in un pool:

Richieste di supporto

Creare e gestire le richieste di supporto per i pool di istanze nel portale di Azure.

Se si verificano problemi durante la creazione o l’eliminazione di un’istanza, assicurarsi di specificare Pool di istanze nel campo Sottotipo del problema.

Screenshot della richiesta di supporto dei pool di istanze nella portale di Azure.

Se si verificano problemi relativi a una singola istanza gestita o a un database all'interno di un pool, è necessario creare un normale ticket di supporto per le istanze gestite di SQL di Azure.

Per creare distribuzioni di istanze gestite di SQL più grandi (con o senza pool di istanze), potrebbe essere necessario ottenere una quota a livello di area maggiore. Per altre informazioni, vedere Richiedere aumenti di quota per il database SQL di Azure. La logica di distribuzione confronta il consumo totale di vCore a livello di pool con la propria quota per determinare se è possibile creare nuove risorse senza aumentare ulteriormente la quota.