Erstellen eines Instanzenpools (Vorschau) - Azure SQL Managed Instance

Gilt für:Azure SQL Managed Instance

In diesem Artikel erfahren Sie, wie Sie einen Instanzpool für Azure SQL Managed Instance erstellen und wie Instanzen in und aus dem Pool verschoben werden.

Instanzpools ermöglichen es, mehrere Instanzen mit gemeinsam genutzten Ressourcen auf einem einzelnen virtuellen Computer bereitzustellen, was eine bequeme und kostengünstige Infrastruktur zum Migrieren mehrerer SQL Server-Instanzen bietet, ohne kleinere und weniger rechenintensive Workloads auf einer größeren SQL-verwalteten Instanz konsolidieren zu müssen.

Hinweis

Instance-Pools für Azure SQL Managed Instance befinden sich derzeit in der Vorschau.

Voraussetzungen

Zum Erstellen eines Instanzpools sollten Sie über Folgendes verfügen:

Überlegungen zur Subnetzgröße

Planen Sie sorgfältig die Größe Ihres Subnetzes, wenn Sie einen Instanzpool verwenden möchten. Weitere Informationen finden Sie unter Ermitteln der erforderlichen Subnetzgröße und des erforderlichen Bereichs für die Subnetzgrößenrichtlinien.

Verwenden Sie die folgende Formel, wenn Sie die Anzahl der IP-Adressen berechnen, die von einem Instanzpool erforderlich sind, der mehrere Universell-Instanzen enthält:

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

# of MIs bezieht sich auf die maximale potenzielle Anzahl von Instanzen, die Sie bereitstellen möchten. Die maximal mögliche Anzahl von Instanzen im Pool beträgt 40.

Instanzenpool erstellen

Sie können über PowerShell oder die Azure-Befehlszeilenschnittstelle einen Instanzenpool erstellen. Beachten Sie Folgendes:

  • Derzeit ist nur die Dienstebene „Universell“ auf Hardware der Standardserien (Gen5) oder Premium-Serie verfügbar.
  • Der Poolname darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten, und er darf nicht mit einem Bindestrich beginnen.
  • Der Azure-Hybridvorteil wird er auf Ebene des Instanzpools angewandt. Sie können den Lizenztyp festlegen, wenn Sie den Pool erstellen, und den Lizenztyp aktualisieren, nachdem der Pool erstellt wurde.

Wichtig

Das Bereitstellen eines Instanzenpools ist ein zeitintensiver Vorgang, der bis zu 4,5 Stunden dauern kann.

Verwenden Sie New-AzSqlInstancePool, um ihren Instanzpool zu erstellen.

Beachten Sie Folgendes:

  • Verwenden Sie für LicenseTypeBasePrice für den Azure-Hybridvorteil oder LicenseIncluded, wenn Sie nicht über eine SQL Server-Lizenz verfügen, die für den Azure-Hybridvorteil-Rabatt verwendet werden kann.
  • Verwenden Sie Get-AzLocation | select displayname, location zum Abrufen einer Liste von Regionen, in denen Instanzenpools verfügbar sind.

Erstellen Sie einen neuen Instance-Pool mit 8 virtuellen Kernen auf Standardreihen-Hardware (Gen5), indem Sie das folgende Beispielskript ausführen:

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

Erstellen einer neuen Instanz im Pool

Nachdem Ihr Pool erstellt wurde, können Sie eine neue Instanz innerhalb des Pools mithilfe von PowerShell oder der Azure CLI erstellen.

Um Poolparameter zu identifizieren, verwenden Sie Get-AzSqlInstancePool und erstellen Sie dann Ihre Instanz innerhalb des spezifischen Pools mit New-AzSqlInstance.

Erstellen Sie eine neue Instanz in Ihrem Pool, indem Sie das folgende Beispielskript ausführen:

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

Bewegen einer vorhandenen Instanz

Sie können eine vorhandene Instanz mithilfe von PowerShell oder der Azure CLI in einen Pool verschieben, wenn:

  • Sie sich in derselben Ressourcengruppe wie der Pool befindet.
  • Sie sich im selben virtuellen Netzwerk und Subnetz wie der Pool befindet.
  • Sie zu den Ressourcengrenzwerten für den Instanzpool passt.

Wenn eine vorhandene Instanz in einen Pool verschoben wird, haben Einstellungen auf Poolebene Vorrang vor Einstellungen auf Instanzenebene. Beispielsweise erbt die Instanz den Lizenztyp und die Einstellung des Wartungsfensters auf Poolebene. Wenn eine Instanz aus dem Pool verschoben wird, behält sie die vom Pool geerbten Einstellungen bei. Die einzige Ausnahme ist der Lizenztyp, der standardmäßig auf "LicenseIncluded" zurückgeht, wenn eine Instanz aus dem Instanzpool entfernt wird. Der Azure-Hybridvorteil und Hybrid-Failover-Rechte müssen manuell konfiguriert werden, nachdem eine Instanz aus einem Pool verschoben wurde.

Um eine Instanz in einen Pool zu verschieben, geben Sie den Poolnamen an, wenn Sie Set-AzSqlInstance verwenden:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Um eine Instanz aus einem Pool zu verschieben, geben Sie einen leeren Poolnamen an:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Herstellen einer Verbindung mit einer Instanz in einem Pool

Um eine Verbindung mit einer Instanz in einem Pool herzustellen, aktivieren Sie zuerst den öffentlichen Endpunkt für die Instanz, und lassen Sie dann öffentlichen Endpunktdatenverkehr in der Netzwerksicherheitsgruppe zu.

Um den öffentlichen Endpunkt für eine Instanz zu aktivieren, legen Sie -PublicDataEndpointEnabled auf true fest, wenn Sie Instanzeigenschaften mit Set-AzSqlInstance aktualisieren:

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

Erstellen einer Datenbank

Das Erstellen einer Datenbank für eine Instanz innerhalb eines Pools entspricht dem Erstellen einer Datenbank für eine einzelne Instanz. Sie können mithilfe der Azure CLI oder mithilfe von Azure PowerShell eine neue Datenbank erstellen.

Verwenden Sie New-AzSqlInstanceDatabase, um eine neue Datenbank für Ihre Instanz zu erstellen:

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

Abrufen der Poolnutzung

Sie können PowerShell verwenden, um zu festzulegen, wie Ressourcen in einem Pool verwendet werden.

Verwenden Sie Get-AzSqlInstance, um eine Liste von Instanzen innerhalb eines Pools abzurufen:

$instancePool | Get-AzSqlInstance

Verwenden Sie Get-AzSqlInstancePoolUsage, um die Ressourcennutzung des Pools abzurufen:

$instancePool| Get-AzSqlInstancePoolUsage

Sie können den Parameter "-ExpandChildren" hinzufügen, um einen detaillierten Überblick über den Pool und die darin enthaltenen Instanzen zu erhalten:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Verwenden Sie Get-AzSqlInstanceDatabase, um die Datenbanken in einer Instanz aufzulisten:

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

Hinweis

Überprüfen Sie die Ressourcenbeschränkungen, um die in einem Pool bereitgestellten Instanzen und Datenbanken pro Instanzpool zu überprüfen.

Aktualisieren eines Instanzenpools

Sie können PowerShell verwenden, um Änderungen an den Instanzenpoolgrenzwerten vorzunehmen.

Das folgende Beispielskript ändert den Lizenztyp, die Größe der virtuellen Kerne und den Hardwaretyp:

Ändern des Lizenztyps:

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

Sie können auch die verfügbaren Wartungsfensterzeitpläne festlegen:

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

Anschließend können Sie das Wartungsfenster ändern, indem Sie eine Fensteroption angeben, z. B.:

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

Aktualisieren eine gepoolten Instanz

Wenn die Grenzwerte für Poolressourcen nicht überschritten wurden, können Sie Ressourcenkonfigurationen für eine Instanz innerhalb eines Pools mithilfe von PowerShell oder der Azure CLI ändern.

Verwenden Sie Set-AzSqlInstance, um Ressourcenparameter für eine Instanz innerhalb eines Pools zu ändern.

Das folgende Skript aktualisiert beispielsweise die virtuellen Kerne auf 8 und ändert die Speichergröße für Instance1 auf 512 GB:

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

Löschen eines Instanzpools

Sie können einen Instanzpool mithilfe von PowerShell oder der Azure CLI löschen, sobald alle Instanzen im Pool gelöscht oder aus dem Pool verschoben wurden.

Verwenden Sie Remove-AzSqlInstancePool, um einen Instanzpool zu löschen.

Das folgende Beispielskript löscht einen leeren Instanzpool:

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

Vorgänge für Instanzenpools

Die folgende Tabelle zeigt die verfügbaren Instanzpool-Operationen:

Get-Help Azure-Portal PowerShell Azure CLI
Erstellen eines Instanzenpools Nein Ja Ja
Aktualisieren von Pooleigenschaften No Ja Ja
Überprüfen der Verwendung und der Eigenschaften eines Pools Ja Ja Ja
Löschen eines Instanzpools Ja Ja Ja
Erstellen einer verwalteten Instanz innerhalb eines Pools No Ja Ja
Verschieben einer verwalteten Instanz in einen Pool No Ja Ja
Löschen einer verwalteten Instanz aus einem Pool Ja Ja Ja
Verschieben einer verwalteten Instanz aus einem Pool No Ja Ja
Erstellen einer Datenbank in einer Instanz innerhalb eines Pools Ja Ja Ja
Löschen einer Datenbank aus SQL Managed Instance Ja Ja Ja

Zur Verwendung von PowerShell installieren Sie die neueste Version von PowerShell Core, und befolgen Sie die Anweisungen zum Installieren des Azure PowerShell-Moduls.

Verfügbare PowerShell-Befehle:

Cmdlet BESCHREIBUNG
New-AzSqlInstancePool Erstellt einen Instanzenpool.
Get-AzSqlInstancePool Gibt Informationen über einen Instanzpool zurück.
Set-AzSqlInstancePool Legt Eigenschaften für einen Instanzenpool fest.
Remove-AzSqlInstancePool Entfernt einen Instanzenpool.
Get-AzSqlInstancePoolUsage Gibt Informationen zur Verwendung von Instanzenpools zurück.

Verwenden Sie für Vorgänge für Instanzen innerhalb von Pools sowie für Einzelinstanzen die Standardbefehle für verwaltete Instanzen. Wenn diese Befehle für eine Instanz in einem Pool verwendet werden, muss allerdings der Name des Instanzenpools angegeben werden.

Begrenzungen

Während der öffentlichen Vorschau haben Instanzen in einem Pool die folgenden Einschränkungen:

  • Der Poolname darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten, und er darf nicht mit einem Bindestrich beginnen.
  • Alle Instanzen im Pool verwenden dasselbe Lizenzierungsmodell. Wenn Sie ein Lizenzmodell für eine Instanz angeben, die sich vom Lizenzmodell für den Pool unterscheidet, wird das Poollizenzmodell verwendet. Wenn die Instanz aus dem Pool verschoben wird, wechselt sie automatisch zu einer vollständig bezahlten Lizenz (LicenseType = 'LicenseIncluded'). Aktivieren Sie den Azure-Hybridvorteil oder die Hybrid-Failover-Rechte manuell, um das Lizenzierungsmodell zu ändern.
  • Poolinstanzen müssen derselben Subnetz- und Ressourcengruppe angehören. Das Bewegen einer Instanz in und aus dem Pool ist nur innerhalb des Subnetzes des Pools und derselben Ressourcengruppe möglich.
  • Nur die Dienstebene Universell ist auf Hardware der Standardserie (Gen5) oder der Premium-Serie verfügbar. Die Dienstebene Universell der nächsten Generation, Unternehmenskritisch und die speicheroptimierte Hardware der Premium-Serie sind nicht verfügbar.
  • Die maximal mögliche Anzahl von Instanzen im Pool beträgt 40.
  • Ein Instanzpool kann nur gelöscht werden, nachdem alle Instanzen im Pool entweder gelöscht oder aus dem Pool verschoben wurden.
  • Sie können das Azure-Portal nicht nutzen für:
    • Die Konfiguration des Instanzenpools. Verwenden Sie stattdessen PowerShell oder das Azure CLI.
    • Das Bewegen von Instanzen in und aus dem Pool. Verwenden Sie stattdessen PowerShell oder das Azure CLI.
  • Die folgenden Features von SQL Managed Instance werden nicht unterstützt, wenn sich Instanzen in einem Pool befinden:

Supportanfragen

Sie können Supportanfragen für Instanzenpools im Azure-Portal erstellen und verwalten.

Wenn Sie Probleme bei der Erstellung oder dem Löschen von Instanzen haben, stellen Sie sicher, dass Sie Instanzenpools im Feld Problemuntertyp angeben.

Screenshot der Supportanfrage für Instanzenpools in Azure-Portal.

Wenn Probleme im Zusammenhang mit einer verwalteten Einzelinstanz oder Datenbank in einem Pool auftreten, empfiehlt es sich, ein reguläres Supportticket für Azure SQL Managed Instance zu erstellen.

Zur Erstellung größerer SQL Managed Instance-Bereitstellungen (mit oder ohne Instanzenpools) benötigen Sie möglicherweise ein größeres regionales Kontingent. Weitere Informationen finden Sie unter Anfordern von Kontingenterhöhungen für Azure SQL-Datenbank. Die Bereitstellungslogik für Instanzenpools vergleicht den Gesamtverbrauch von virtuellen Kernen auf Poolebene mit Ihrem Kontingent, um zu ermitteln, ob Sie ohne Kontingenterhöhung neue Ressourcen erstellen können.