In diesem Artikel erfahren Sie, wie Sie einen Instanzpool für Azure SQL Managed Instance mithilfe des Azure-Portals, der PowerShell oder der Azure-CLI erstellen und wie Sie Instances mithilfe der PowerShell oder der Azure-CLI in den und aus dem Pool verschieben können.
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.
Voraussetzungen
Zum Erstellen eines Instanzpools sollten Sie über Folgendes verfügen:
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 ein Instanzpool mithilfe des Azure-Portals, der PowerShell oder der Azure-CLI. 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.
Führen Sie die folgenden Schritte aus, um einen Pool im Azure-Portal zu erstellen:
Suchen Sie im Azure-Portal nach Instanzenpools, und wählen Sie den Instanzpooldienst aus, um die Seite Instanzenpools zu öffnen:
Wählen Sie auf der Seite Instanzpools+ Erstellen, um die Seite Azure SQL Managed Instance Pool erstellen zu öffnen:
Auf der Seite Azure SQL Managed Instance Pool erstellen:
Geben Sie auf der Registerkarte Grundlagen Projekt- und Instanzdetails an.
Verwenden Sie Instanzpool konfigurieren unter Compute + Storage, um die Seite Compute + Storage zu öffnen, und wählen Sie die Dienstebene, die Hardware und die SQL Server-Lizenz aus, die der Pool verwenden soll. Verwenden Sie Übernehmen, um Ihre Computeeinstellungen zu speichern und zur Seite Azure SQL Managed Instance Pool erstellen zurückzukehren.
Wählen Sie ein vorhandenes virtuelles Netzwerk aus, oder konfigurieren Sie ein neues virtuelles Netzwerk auf der Registerkarte Netzwerk.
(Optional) Konfigurieren Sie ein nicht standardmäßiges Standard Stufenfenster für den Pool auf der Registerkarte Zusätzliche Einstellungen.
Überprüfen Sie Ihre Konfiguration auf der Registerkarte Überprüfen + Erstellen und wählen Sie dann Erstellen aus, um Ihren Instanzpool zu erstellen.
Sie können die Poolbereitstellung über Benachrichtigungen überwachen.
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:
Verwenden Sie für --license-typeBasePrice 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.
Erstellen Sie einen neuen Instance-Pool mit 8 virtuellen Kernen auf Standardreihen-Hardware (Gen5), indem Sie das folgende Beispielskript ausführen:
Nachdem Ihr Pool erstellt wurde, können Sie eine neue Instanz innerhalb des Pools mithilfe von der Azure-Portal, der PowerShell oder der Azure CLI erstellen.
Beachten Sie Folgendes:
Sie müssen den Lizenztyp für die neue Instanz angeben und mit dem Lizenztyp des Pools übereinstimmen.
Wählen Sie auf der Seite Azure SQL+ Erstellen, um die Option SQL-Bereitstellung auswählen zu öffnen.
Wählen Sie auf der Kachel SQL Managed Instances den Ressourcentyp Single Instance und wählen Sie dann Erstellen, um die Seite Azure SQL Managed Instance erstellen zu öffnen.
Auf der Registerkarte Grundlagen auf der Seite Azure SQL Managed Instance erstellen:
Wählen Sie die Ressourcengruppe aus, die Ihren vorhandenen Instanzpool enthält.
Wählen Sie Ja bei Gehört zu einem Instanzpool? unter Details zur verwalteten Instanz, um Ihre neue Instanz innerhalb eines Instanzpools zu erstellen.
Wählen Sie einen Pool aus der Instanzpool-Dropdownliste aus.
Nachdem Sie in der Dropdownliste einen Instanzenpool ausgewählt haben, werden die Computekosten für die Instanz in 0 geändert, da Compute in den Kosten des Pools enthalten ist.
Füllen Sie die restlichen Details auf der Seite Azure SQL Managed Instance erstellen aus, um Ihre Instanz innerhalb des Pools zu erstellen. Weitere Informationen finden Sie unter Azure SQL Managed Instance erstellen.
Wählen Sie Überprüfen + Erstellen aus, um die Einstellungen für Ihre neue Instanz zu überprüfen, und verwenden Sie dann Erstellen, um Ihre Instanz im ausgewählten Pool bereitzustellen.
Um Poolparameter mithilfe von PowerShell 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:
Um eine neue Instanz mithilfe der Azure CLI in Ihrem Pool zu erstellen, geben Sie den Poolnamen im --instance-pool-name-Parameter an, wenn Sie az sql mi create zum Erstellen Ihrer Instanz verwenden:
#obtain the subnetId of an instance pool
sqlmipoolSubnetId=$(az sql instance-pool show -g <resource group name> -n <instance pool name> --query subnetId --output tsv)
az sql mi create \
--license-type LicenseIncluded \
--name <Instance name> \
--admin-user <username> \
--admin-password <password> \
--capacity 2 \
--instance-pool-name <instance pool name> \
--storage 32 \
--resource-group <resource group name> \
--subnet $sqlmipoolSubnetId
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.
Das Verschieben einer vorhandenen Instanz innerhalb eines Pools über das Azure-Portal wird derzeit nicht unterstützt.
Um eine Instanz mithilfe von der Azure CLI in einen Pool zu verschieben, geben Sie den Poolnamen im --instance-pool-name-Parameter an, wenn Sie az sql mi update verwenden, um Ihre Instanz zu aktualisieren:
az sql mi update \
--name <instance name> \
--instance-pool-name <instance pool name> \
--resource-group <resource group name>
Um eine Instanz aus einem Pool zu verschieben, geben Sie einen leeren Namen im --instance-pool-name-Parameter an, wenn Sie az sql mi update verwenden, um Ihre Instanz zu aktualisieren:
az sql mi update \
--name <instance name> \
--instance-pool-name '' \
--resource-group <resource group name>
Herstellen einer Verbindung mit einer Instanz in einem Pool
Sie können eine Verbindung mit einer Instanz in einem Pool mit einem privaten Endpunkt oder einem öffentlichen Endpunkt herstellen. Um einen privaten Endpunkt zu verwenden, müssen Sie Azure Private Link verwenden.
Das Erstellen einer Datenbank für eine Instanz innerhalb eines Pools entspricht dem Erstellen einer Datenbank für eine einzelne Instanz. Sie können eine neue Datenbank über das Azure-Portal, die PowerShell oder die Azure CLI erstellen.
Wählen Sie im Übersichtsbereich in der Befehlsleiste + Neue Datenbank, um die Seite Azure SQL Managed Database erstellen zu öffnen.
Geben Sie Details für die neue Datenbank an.
Wählen Sie Überprüfen + Erstellen aus, um die neue Datenbankkonfiguration zu überprüfen und dann Erstellen zum Bereitstellen der Datenbank zu verwenden.
Verwenden Sie az sql midb create, um eine neue Datenbank für Ihre Instanz zu erstellen:
az sql midb create
--managed-instance <Instance name> \
--name <Database name> \
--resource-group <Resource group name>
Abrufen der Poolnutzung
Sie können über das Azure-Portal, PowerShell oder die Azure-Befehlszeilenschnittstelle bestimmen, wie Ressourcen von Ressourcen in einem Pool verwendet werden.
Um eine Liste von Instanzen innerhalb eines Pools abzurufen, verwenden Sie das Azure-Portal, um die Seite Instanzenpools anzuzeigen. Wählen Sie auf der Seite Übersicht den Poolnamen aus, um die Instanzen im Pool anzuzeigen:
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:
Überprüfen Sie die Ressourcenbeschränkungen, um die in einem Pool bereitgestellten Instanzen und Datenbanken pro Instanzpool zu überprüfen.
Verwenden Sie az sql instance-pool show, um Informationen zu den Instanzen und der Ressourcennutzung im Pool abzurufen:
sqlmipoolId=$(az sql instance-pool show --name <pool name> \
--resource-group <resource group name> --query id | cut -d '"' -f 2) \
az sql mi list --resource-group <resource group name> \
--query "[?instancePoolId == '$sqlmipoolId'].{sqlmiName:name}" -o tsv
Aktualisieren eines Instanzenpools
Sie können Einstellungen für einen vorhandenen Instanzenpool über das Azure-Portal, PowerShell oder die Azure-Befehlszeilenschnittstelle aktualisieren.
Verwenden Sie den Bereich Compute + Speicher unter Einstellungen auf der Seite Instanzenpools im Azure-Portal, um den Lizenztyp, die V-Kern-Größe und den Hardwaretyp für Ihren Pool zu aktualisieren:
Verwenden Sie den Bereich Wartung unter Einstellungen auf der Seite Instanzenpools im Azure-Portal, um das Wartungsfenster für Ihren Pool zu aktualisieren:
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:
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 az sql mi update, um Ressourcenparameter für eine Instanz innerhalb eines Pools zu ändern.
Das folgende Beispiel aktualisiert die virtuellen Kerne auf 8 und ändert die Speichergröße für Instance1 auf 512 GB:
az sql mi update \
--name Instance1 \
--resource-group <resource group name> \
--capacity 8 \
--storage 512
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.
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.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Instanzen in einem Pool haben 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.
Das Verschieben eines Instanzenpools in ein anderes Subnetz wird nicht unterstützt.
Nur die Dienstebene „Universell“ ist verfügbar. Die Dienstebenen der nächsten Generation „Universell“ und „Unternehmenskritisch“ sind nicht verfügbar.
Nur die Hardware der Standard-Serie (Gen5) oder der Premium-Serie wird unterstützt. Die speicheroptimierte Hardware der Premium-Serie wird nicht unterstützt.
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 nicht das Azure-Portal verwenden, um Instanzen in den Pool und aus ihm zu verschieben. Verwenden Sie stattdessen PowerShell oder das Azure CLI.
Die folgenden Features von SQL Managed Instance werden für Instanzen in einem Pool nicht unterstützt:
Geben Sie die folgenden Informationen in der neuen Supportanfrage an:
Wählen Sie als AusgabentypTechnical.
Wählen Sie in der Dropdownliste das entsprechende Abonnement aus.
Wählen Sie für den DiensttypSQL Managed Instance aus.
Geben Sie für Ressource den Namen ihrer SQL-verwaltete Instanz an, falls vorhanden, oder wählen Sie Allgemein aus, wenn Sie Ihre Instanz nicht innerhalb des Pools bereitstellen können.
Geben Sie für die Zusammenfassunginstance pools ein.
Wählen Sie für ProblemtypCreate, Scale, Stop, Start, or Delete Resources aus.
Wählen Sie für Problem-SubtypInstance Pools aus.
Wählen Sie Weiter auf den nachfolgenden Seiten aus, bis Sie Ihre Supportanfrage erstellen können.
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.
Erfahren Sie, wie Sie Pools für elastische SQL-Datenbanken erstellen und diese verwenden, um die Leistung und die Kosten für eine Sammlung von SQL-Datenbanken zu verwalten.
Verwalten einer SQL Server-Datenbankinfrastruktur für Cloud-, lokale und hybride relationale Datenbanken auf Grundlage der Microsoft PaaS-Angebote für relationale Datenbanken.