Creación de un grupo de instancias (versión preliminar): Azure SQL Managed Instance

Se aplica a:Azure SQL Managed Instance

En este artículo se explica cómo crear un grupo de instancias para Azure SQL Managed Instance, así como cómo mover instancias dentro y fuera del grupo.

Los grupos de instancias permiten implementar varias instancias con recursos compartidos en una sola máquina virtual, lo que proporciona una infraestructura cómoda y rentable para migrar varias instancias de SQL Server sin tener que consolidar cargas de trabajo más pequeñas y menos intensivas en un instancia de SQL Managed Instance más grande.

Nota:

Actualmente, los grupos de instancias para Azure SQL Managed Instance están en versión preliminar.

Requisitos previos

Para crear un grupo de instancias, debe:

Consideraciones de tamaño de subredes

Planee cuidadosamente el tamaño de la subred si planea usar un grupo de instancias. Consulte Determinar el tamaño y el rango de subred necesarios para obtener instrucciones de ajuste de tamaño de subred.

Use la fórmula siguiente al calcular el número de direcciones IP requeridas por un grupo de instancias que contenga varias instancias de uso general:

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

# of MIs hace referencia al número potencial máximo de instancias que planea aprovisionar. El número máximo posible de instancias del grupo es 40.

Crear un grupo de instancias

Puede crear un grupo de instancias mediante PowerShell o la CLI de Azure. Tenga en cuenta lo siguiente.

  • Actualmente solo está disponible el nivel de servicio De uso general en hardware de serie estándar (Gen5) o serie prémium.
  • El nombre del grupo solo puede contener letras minúsculas, números y guiones, y no puede empezar con un guion.
  • La Ventaja híbrida de Azure se aplica en el nivel de grupo de instancias. Puede establecer el tipo de licencia al crear el grupo y actualizarlo después de crear el grupo.

Importante

La implementación de un grupo de instancias es una operación de larga duración que puede tardar aproximadamente hasta 4,5 horas.

Para crear el grupo de instancias, use New-AzSqlInstancePool.

Tenga en cuenta lo siguiente.

  • Para LicenseType, use BasePrice para la Ventaja híbrida de Azure o LicenseIncluded si no tiene una licencia de SQL Server que se puede usar para el descuento de la Ventaja híbrida de Azure.
  • Use Get-AzLocation | select displayname, location para obtener una lista de regiones en las que están disponibles los grupos de instancias.

Cree un nuevo grupo de instancias con 8 núcleos virtuales en hardware de la serie estándar (Gen5) mediante la ejecución del siguiente script de ejemplo:

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

Creación de una nueva instancia dentro del grupo

Una vez creado el grupo, puede crear una nueva instancia dentro del grupo mediante PowerShell o la CLI de Azure.

Para identificar los parámetros del grupo, use Get-AzSqlInstancePool y cree la instancia dentro del grupo específico con New-AzSqlInstance.

Cree una nueva instancia en el grupo mediante la ejecución del siguiente script de ejemplo:

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

Desplazamiento de una instancia existente

Puede mover una instancia existente dentro y fuera de un grupo mediante PowerShell o la CLI de Azure si:

  • Está en el mismo grupo de recursos que el grupo.
  • Está en la misma red virtual y subred que el grupo.
  • Se ajusta a los límites de recursos del grupo de instancias.

Cuando se mueve una instancia existente a un grupo, la configuración en el nivel de grupo tiene prioridad sobre la configuración de nivel de instancia. Por ejemplo, la instancia hereda el tipo de licencia y la ventana de mantenimiento establecidos en el nivel de grupo. Cuando una instancia se mueve fuera del grupo, conserva la configuración que heredó del grupo. La única excepción es con el tipo de licencia, que vuelve a "LicenseIncluded" cuando se quita una instancia del grupo de instancias: la Ventaja híbrida de Azure por error híbrida y la ventaja de derechos de migración tras error híbrida se debe configurar manualmente después de que una instancia se mueva fuera de un grupo.

Para mover una instancia a un grupo, proporcione el nombre del grupo cuando use Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Para sacar una instancia de un grupo, proporcione un nombre de grupo en blanco:

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Conexión a una instancia de un grupo

Para conectarse a una instancia de un grupo, habilite primero el punto de conexión público para la instancia y, a continuación, permita el tráfico del punto de conexión público en el grupo de seguridad de red.

Para habilitar el punto de conexión público para una instancia, establezca -PublicDataEndpointEnabled en true cuando actualice las propiedades de instancia con Set-AzSqlInstance:

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

Creación de una base de datos

La creación de una base de datos para una instancia dentro de un grupo sigue el mismo proceso que la creación de una base de datos para una sola instancia. Puede crear una nueva base de datos mediante PowerShell o la CLI de Azure.

Para crear una nueva base de datos para la instancia, use New-AzSqlInstanceDatabase:

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

Obtención del uso del grupo

Puede usar PowerShell para determinar cómo se usan los recursos dentro de un grupo.

Para obtener una lista de las instancias que hay dentro de un grupo, use Get-AzSqlInstance:

$instancePool | Get-AzSqlInstance

Para obtener el uso de recursos del grupo, use Get-AzSqlInstancePoolUsage:

$instancePool| Get-AzSqlInstancePoolUsage

Puede agregar el parámetro -ExpandChildren para obtener información general detallada sobre el grupo y las instancias que hay dentro:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Para enumerar las bases de datos de una instancia, use Get-AzSqlInstanceDatabase:

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

Nota:

Para comprobar los límites de las instancias implementadas en un grupo y las bases de datos por grupo de instancias, revise los límites de recursos.

Actualización de un grupo de instancias

Puede usar PowerShell para realizar cambios en los límites del grupo de instancias.

El siguiente script de ejemplo cambia el tipo de licencia, el tamaño de núcleo virtual y el tipo de hardware:

Cambie el tipo de licencia:

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

También puede determinar las programaciones de ventanas de mantenimiento disponibles:

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

A continuación, puede cambiar la ventana de mantenimiento especificando una opción de ventana, como:

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

Actualización de una instancia agrupada

Si no se han superado los límites de recursos del grupo, puede modificar las configuraciones de recursos de una instancia dentro de un grupo mediante PowerShell o la CLI de Azure,

Para modificar parámetros de recursos para una instancia dentro de un grupo, use Set-AzSqlInstance.

Por ejemplo, el siguiente script actualiza los núcleos virtuales a 8 y cambia el tamaño de almacenamiento a 512 GB para Instance1:

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

Eliminación de un grupo de instancias

Puede eliminar un grupo de instancias mediante PowerShell o la CLI de Azure, una vez que se han eliminado todas las instancias del grupo o se han movido fuera del grupo.

Para eliminar un grupo de instancias, use Remove-AzSqlInstancePool.

El script de ejemplo siguiente elimina un grupo de instancias vacío:

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

Operaciones de un grupo de instancias

En la tabla siguiente se muestran las operaciones disponibles del grupo de instancias:

Get-Help Azure portal PowerShell Azure CLI
Creación de un grupo de instancias No
Actualización de propiedades del grupo No
Comprobación del uso y las propiedades de un grupo
Eliminación de un grupo de instancias
Creación de una instancia administrada dentro de un grupo No
Traslado de una instancia administrada a un grupo No
Eliminación de una instancia administrada de un grupo
Traslado de una instancia administrada fuera de un grupo No
Creación de una base de datos en una instancia dentro de un grupo
Eliminación de una base de datos en Instancia administrada de SQL

Para usar PowerShell, instale la versión más reciente de PowerShell Core y siga las instrucciones para instalar el módulo de Azure PowerShell.

Comandos de PowerShell disponibles:

Cmdlet Descripción
New-AzSqlInstancePool Crea un grupo de instancias.
Get-AzSqlInstancePool Devuelve información sobre un grupo de instancias.
Set-AzSqlInstancePool Establece las propiedades de un grupo de instancias.
Remove-AzSqlInstancePool Elimina un grupo de instancias.
Get-AzSqlInstancePoolUsage Devuelve información sobre el uso de los grupos de instancias.

En el caso de las operaciones relacionadas con instancias dentro de grupos e instancias únicas, use los comandos de instancia administrada estándar, pero la propiedad de nombre del grupo de instancias se debe rellenar al usar estos comandos para una instancia de un grupo.

Limitaciones

Durante la versión preliminar pública, las instancias de un grupo tienen las siguientes limitaciones:

  • El nombre del grupo solo puede contener letras minúsculas, números y guiones, y no puede empezar con un guion.
  • Todas las instancias del grupo usan el mismo modelo de licencias. Cuando se especifica un modelo de licencias de una instancia diferente del modelo de licencias del grupo, se usa el modelo de licencia del grupo. Cuando la instancia se mueve fuera del grupo, cambia automáticamente a una licencia de pago completa (LicenseType = "LicenseIncluded"). Active manualmente la Ventaja híbrida de Azure o la ventaja de derechos de migración tras error híbrida para cambiar el modelo de licencias.
  • Las instancias agrupadas deben pertenecer a la misma subred y grupo de recursos. Mover una instancia dentro y fuera del grupo solo es posible dentro de la subred del grupo y del mismo grupo de recursos.
  • Solo está disponible el nivel de servicio De uso general en hardware de serie estándar (Gen5) o serie prémium. El nivel de servicio de uso general de nueva generación, Crítico para la empresa y el hardware optimizado para memoria de la serie prémium no están disponibles.
  • El número máximo posible de instancias del grupo es 40.
  • Un grupo de instancias solo se puede eliminar después de que todas las instancias del grupo se eliminen o se muevan fuera del grupo.
  • No puede usar Azure Portal para hacer lo siguiente:
    • Configurar el grupo de instancias. Use PowerShell o la CLI de Azure en su lugar.
    • Mover instancias dentro y fuera del grupo. Use PowerShell o la CLI de Azure en su lugar.
  • Las siguientes características de SQL Managed Instance no se admiten cuando las instancias están en un grupo:

Solicitudes de soporte técnico

Cree y administre solicitudes de soporte técnico para grupos de instancias en Azure Portal.

Si tiene problemas relacionados con la creación o eliminación de una instancia, asegúrese de especificar Grupos de instancias en el campo Subtipo de problema.

Captura de pantalla de la solicitud de soporte técnico de grupos de instancias en el Azure Portal.

Si tiene problemas relacionados con bases de datos o instancias administrada únicas dentro de un grupo, debe crear una incidencia de soporte técnico normal para Azure SQL Managed Instance.

Para crear implementaciones de SQL Managed Instance más grandes (con o sin grupos de instancias), es posible que tenga que obtener una cuota regional más grande. Para más información, consulte Solicitud de aumentos de cuota para Azure SQL Database. La lógica de implementación para grupos de instancias compara el consumo total de núcleos virtuales en el nivel de grupo con respecto a la cuota para determinar si se permite crear recursos nuevos sin aumentar aún más la cuota.