Schrittanleitung zu Azure SQL-Datenbank-Instanzenpools (Vorschau)Azure SQL Database instance pools (preview) how-to guide

Dieser Artikel enthält ausführliche Informationen zum Erstellen und Verwalten von Instanzenpools.This article provides details on how to create and manage instance pools.

Vorgänge für InstanzenpoolsInstance pool operations

In der folgenden Tabelle sind die verfügbaren Vorgänge im Zusammenhang mit Instanzenpools und deren Verfügbarkeit im Azure-Portal und in PowerShell aufgeführt.The following table shows the available operations related to instance pools and their availability in the Azure portal and PowerShell.

Get-HelpCommand Azure-PortalAzure portal PowerShellPowerShell
Instanzenpool erstellenCreate instance pool NeinNo JaYes
Instanzenpool aktualisieren (begrenzte Anzahl von Eigenschaften)Update instance pool (limited number of properties) NeinNo JaYes
Verwendung und Eigenschaften von Instanzenpools überprüfenCheck instance pool usage and properties NeinNo JaYes
Instanzenpool löschenDelete instance pool NeinNo JaYes
Verwaltete Instanz in Instanzenpool erstellenCreate managed instance inside instance pool NeinNo JaYes
Ressourcennutzung verwalteter Instanzen aktualisierenUpdate managed instance resource usage JaYes JaYes
Verwendung und Eigenschaften verwalteter Instanzen überprüfenCheck managed instance usage and properties JaYes JaYes
Verwaltete Instanz aus dem Pool löschenDelete managed instance from the pool JaYes JaYes
Datenbank in einer im Pool abgelegten verwalteten Instanz erstellenCreate a database in managed instance placed in the pool JaYes JaYes
Datenbank aus verwalteter Instanz löschenDelete a database from managed instance JaYes JaYes

Verfügbare PowerShell-BefehleAvailable PowerShell commands

CmdletCmdlet BESCHREIBUNGDescription
New-AzSqlInstancePoolNew-AzSqlInstancePool Erstellt einen Azure SQL-Datenbank-InstanzenpoolCreates an Azure SQL Database instance pool.
Get-AzSqlInstancePoolGet-AzSqlInstancePool Gibt Informationen zum Azure SQL-Instanzenpool zurückReturns information about Azure SQL instance pool.
Set-AzSqlInstancePoolSet-AzSqlInstancePool Legt Eigenschaften für einen Azure SQL-Datenbank-Instanzenpool festSets properties for an Azure SQL Database instance pool.
Remove-AzSqlInstancePoolRemove-AzSqlInstancePool Entfernt einen Azure SQL-Datenbank-InstanzenpoolRemoves an Azure SQL Database instance pool.
Get-AzSqlInstancePoolUsageGet-AzSqlInstancePoolUsage Gibt Informationen zur Verwendung von Azure SQL-Instanzenpools zurückReturns information about Azure SQL instance pool usage.

Zur Verwendung von PowerShell installieren Sie die neueste Version von PowerShell Core, und befolgen Sie die Anweisungen zum Installieren des Azure PowerShell-Moduls.To use PowerShell, install the latest version of PowerShell Core, and follow instructions to Install the Azure PowerShell module.

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.For operations related to instances both inside pools and single instances, use the standard managed instance commands, but the instance pool name property must be populated when using these commands for an instance in a pool.

Bereitstellen von verwalteten Instanzen in PoolsHow to deploy managed instances into pools

Die Bereitstellung einer Instanz in einem Pool erfolgt mit den folgenden zwei Schritten:The process of deploying an instance into a pool consists of the following two steps:

  1. Einmalige Bereitstellung des Instanzenpools:One-off instance pool deployment. Dabei handelt es sich um einen zeitintensiven Vorgang, bei dem die Dauer der Bereitstellung einer in einem leeren Subnetz erstellten Einzelinstanz entspricht.This is a long running operation, where the duration is the same as deploying a single instance created in an empty subnet.

  2. Wiederholte Bereitstellung der Instanz in einem Instanzenpool:Repetitive instance deployment in an instance pool. Der Instanzenpoolparameter muss als Teil dieses Vorgangs explizit angegeben werden.The instance pool parameter must be explicitly specified as part of this operation. Dies ist ein relativ schneller Vorgang, der in der Regel maximal 5 Minuten dauert.This is a relatively fast operation that typically takes up to 5 minutes.

In der Public Preview werden beide Schritte nur unter Verwendung von PowerShell und Resource Manager-Vorlagen unterstützt.In public preview, both steps are only supported using PowerShell and Resource Manager templates. Das Azure-Portal steht dafür derzeit nicht zur Verfügung.The Azure portal experience is not currently available.

Nach dem Bereitstellen einer verwalteten Instanz in einem Pool können Sie über das Azure-Portal die zugehörigen Eigenschaften auf der Seite mit den Tarifen ändern.After a managed instance is deployed to a pool, you can use the Azure portal to change its properties on the pricing tier page.

Erstellen eines InstanzenpoolsCreate an instance pool

So erstellen Sie einen InstanzenpoolTo create an instance pool:

  1. Erstellen eines virtuellen Netzwerks mit einem SubnetzCreate a virtual network with a subnet.
  2. Erstellen eines InstanzenpoolsCreate an instance pool.

Erstellen eines virtuellen Netzwerks mit einem SubnetzCreate a virtual network with a subnet

Informationen zum Platzieren mehrerer Instanzenpools innerhalb desselben virtuellen Netzwerks finden Sie in den folgenden Artikeln:To place multiple instance pools inside the same virtual network, see the following articles:

Erstellen eines InstanzenpoolsCreate an instance pool

Nach Ausführen der vorherigen Schritte können Sie einen Instanzenpool erstellen.After completing the previous steps, you are ready to create an instance pool.

Für Instanzenpools gelten die folgenden Einschränkungen:The following restrictions apply to instance pools:

  • In der Public Preview sind nur die Optionen „Universell“ und „Gen5“ verfügbar.Only General Purpose and Gen5 are available in public preview.
  • Der Poolname darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten, und er darf nicht mit einem Bindestrich beginnen.Pool name can contain only lowercase, numbers and hyphen, and can't start with a hyphen.
  • Verwenden Sie Get-AzVirtualNetworkSubnetConfig -Name "miPoolSubnet" -VirtualNetwork $virtualNetwork, um die Subnetz-ID abzurufen.To get the subnet ID, use Get-AzVirtualNetworkSubnetConfig -Name "miPoolSubnet" -VirtualNetwork $virtualNetwork.
  • Wenn Sie den Azure-Hybridvorteil (AHB) nutzen möchten, wird er auf Ebene des Instanzenpools angewandt.If you want to use AHB (Azure Hybrid Benefit), it is applied at the instance pool level. Sie können den Lizenztyp während der Poolerstellung festlegen oder jederzeit nach der Erstellung aktualisieren.You can set the license type during pool creation or update it anytime after creation.

Wichtig

Das Bereitstellen eines Instanzenpools ist ein zeitintensiver Vorgang und dauert ungefähr 4,5 Stunden.Deploying an instance pool is a long running operation that takes approximately 4.5 hours.

So erstellen Sie einen InstanzenpoolTo create an instance pool:

$instancePool = New-AzSqlInstancePool `
  -ResourceGroupName "myResourceGroup" `
  -Name "mi-pool-name" `
  -SubnetId "/subscriptions/subscriptionID/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/miPoolVirtualNetwork/subnets/miPoolSubnet" `
  -LicenseType "LicenseIncluded" `
  -VCore 80 `
  -Edition "GeneralPurpose" `
  -ComputeGeneration "Gen5" `
  -Location "westeurope"

Wichtig

Da die Bereitstellung eines Instanzenpools ein zeitintensiver Vorgang ist, müssen Sie warten, bis er abgeschlossen ist, bevor Sie die nachfolgenden Schritte in diesem Artikel ausführen.Because deploying an instance pool is a long running operation, you need to wait until it completes before running any of the following steps in this article.

Erstellen einer verwalteten Instanz innerhalb des PoolsCreate a managed instance inside the pool

Nach der erfolgreichen Bereitstellung des Instanzenpools kann nun eine Instanz darin erstellt werden.After the successful deployment of the instance pool, it's time to create an instance inside it.

Führen Sie zum Erstellen einer verwalteten Instanz den folgenden Befehl aus:To create a managed instance, execute the following command:

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

Das Bereitstellen einer Instanz innerhalb eines Pools dauert einige Minuten.Deploying an instance inside a pool takes a couple of minutes. Nachdem die erste Instanz erstellt wurde, können weitere Instanzen erstellt werden:After the first instance has been created, additional instances can be created:

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

Erstellen einer Datenbank innerhalb einer InstanzCreate a database inside an instance

Zum Erstellen und Verwalten von Datenbanken in einer verwalteten Instanz, die sich in einem Pool befindet, verwenden Sie die Befehle für Einzelinstanzen.To create and manage databases in a managed instance that's inside a pool, use the single instance commands.

So erstellen Sie eine Datenbank innerhalb einer verwalteten InstanzTo create a database inside a managed instance:

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

Abrufen der Verwendung eines InstanzenpoolsGet instance pool usage

So rufen Sie eine Liste von Instanzen innerhalb eines Pools abTo get a list of instances inside a pool:

$instancePool | Get-AzSqlInstance

So rufen Sie die Ressourcennutzung des Pools abTo get pool resource usage:

$instancePool | Get-AzSqlInstancePoolUsage

So rufen Sie die detaillierte Nutzungsübersicht über den Pool und die darin enthaltenen Instanzen abTo get detailed usage overview of the pool and instances inside it:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

So listen Sie die Datenbanken in einer Instanz aufTo list the databases in an instance:

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

Hinweis

Pro Pool (nicht pro Instanz) können maximal 100 Datenbanken erstellt werden.There is a limit of 100 databases per pool (not per instance).

Skalieren einer verwalteten Instanz innerhalb eines PoolsScale a managed instance inside a pool

Nachdem Sie eine verwaltete Instanz mit Datenbanken gefüllt haben, erreichen Sie möglicherweise Instanzengrenzwerte in Bezug auf die Speicherung oder Leistung.After populating a managed instance with databases, you may hit instance limits regarding storage or performance. Wenn in diesem Fall die Poolverwendung nicht überschritten wurde, können Sie die Instanz skalieren.In that case, if pool usage has not been exceeded, you can scale your instance. Die Skalierung einer verwalteten Instanz innerhalb eines Pools dauert einige Minuten.Scaling a managed instance inside a pool is an operation that takes a couple of minutes. Voraussetzung für die Skalierung sind verfügbare virtuelle Kerne und verfügbarer Speicher auf Ebene des Instanzenpools.The prerequisite for scaling is available vCores and storage on the instance pool level.

So aktualisieren Sie die Anzahl der virtuellen Kerne und die SpeichergrößeTo update the number of vCores and storage size:

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

So aktualisieren Sie nur die SpeichergrößeTo update storage size only:

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

Herstellen einer Verbindung mit einer verwalteten Instanz innerhalb eines PoolsConnect to a managed instance inside a pool

Zum Herstellen einer Verbindung mit einer verwalteten Instanz in einem Pool sind die folgenden zwei Schritte erforderlich:To connect to a managed instance in a pool, the following two steps are required:

  1. Aktivieren des öffentlichen Endpunkts für die InstanzEnable the public endpoint for the instance.
  2. Hinzufügen einer Eingangsregel zur Netzwerksicherheitsgruppe (NSG)Add an inbound rule to the network security group (NSG).

Nach Ausführung beider Schritte können Sie unter Verwendung der Adresse, des Ports und der Anmeldeinformationen des öffentlichen Endpunkts, die bei der Erstellung der Instanz angegeben wurden, eine Verbindung mit der Instanz herstellen.After both steps are complete, you can connect to the instance by using a public endpoint address, port, and credentials provided during instance creation.

Aktivieren des öffentlichen Endpunkts für die InstanzEnable the public endpoint for the instance

Die Aktivierung des öffentlichen Endpunkts für eine Instanz kann über das Azure-Portal oder den folgenden PowerShell-Befehl erfolgen:Enabling the public endpoint for an instance can be done through the Azure portal or by using the following PowerShell command:

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

Auch dieser Parameter kann bei der Erstellung der Instanz festgelegt werden.This parameter can be set during instance creation as well.

Hinzufügen einer Eingangsregel zur NetzwerksicherheitsgruppeAdd an inbound rule to the network security group

Dieser Schritt kann über das Azure-Portal oder mithilfe von PowerShell-Befehlen ausgeführt werden. Er kann jederzeit erfolgen, nachdem das Subnetz für die verwaltete Instanz vorbereitet wurde.This step can be done through the Azure portal or using PowerShell commands, and can be done anytime after the subnet is prepared for the managed instance.

Ausführliche Informationen finden Sie unter Zulassen von Datenverkehr auf dem öffentlichen Endpunkt in der Netzwerksicherheitsgruppe.For details, see Allow public endpoint traffic on the network security group.

Verschieben einer vorhandenen Einzelinstanz in einem InstanzenpoolMove an existing single instance inside an instance pool

Das Verschieben von Instanzen in und aus einem Pool ist eine der Einschränkungen der Public Preview.Moving instances in and out of a pool is one of the public preview limitations. Eine mögliche Problemumgehung basiert auf der Point-in-Time-Wiederherstellung von Datenbanken einer Instanz außerhalb eines Pools in einer Instanz, die sich bereits in einem Pool befindet.A workaround that can be used relies on point-in-time restore of databases from an instance outside a pool to an instance that's already in a pool.

Beide Instanzen müssen sich im selben Abonnement und derselben Region befinden.Both instances must be in the same subscription and region. Die regions- und abonnementübergreifende Wiederherstellung wird derzeit nicht unterstützt.Cross-region and cross-subscription restore is not currently supported.

Dieser Vorgang bringt eine gewisse Ausfallzeit mit sich.This process does have a period of downtime.

So verschieben Sie vorhandene DatenbankenTo move existing databases:

  1. Halten Sie Workloads in der verwalteten Instanz an, von der aus die Migration durchgeführt wird.Pause workloads on the managed instance you are migrating from.

  2. Generieren Sie Skripts zum Erstellen von Systemdatenbanken, und führen Sie sie in der Instanz aus, die sich im Instanzenpool befindet.Generate scripts to create system databases and execute them on the instance that's inside the instance pool.

  3. Führen Sie eine Point-in-Time-Wiederherstellung der einzelnen Datenbanken der Einzelinstanz in der Instanz im Pool durch.Do a point-in-time restore of each database from the single instance to the instance in the pool.

    $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. Richten Sie in der Anwendung einen Verweis auf die neue Instanz ein, und setzen Sie die zugehörigen Workloads fort.Point your application to the new instance and resume it's workloads.

Wiederholen Sie bei mehreren Datenbanken den Vorgang für jede Datenbank.If there are multiple databases, repeat the process for each database.

Nächste SchritteNext steps