Criar um pool de instâncias (visualização) - Instância Gerenciada SQL do Azure

Aplica-se a:Instância Gerenciada SQL do Azure

Este artigo ensina como criar um pool de instâncias para a Instância Gerenciada SQL do Azure, bem como mover instâncias para dentro e para fora do pool.

Os pools de instâncias possibilitam a implantação de várias instâncias com recursos compartilhados em uma única máquina virtual, o que fornece uma infraestrutura conveniente e econômica para migrar várias instâncias do SQL Server sem a necessidade de consolidar cargas de trabalho menores e menos intensivas em computação em uma instância gerenciada SQL maior.

Nota

Os pools de instâncias para a Instância Gerenciada SQL do Azure estão atualmente em visualização.

Pré-requisitos

Para criar um pool de instâncias, você deve ter:

Considerações sobre o tamanho da sub-rede

Planeje cuidadosamente o tamanho da sua sub-rede se você planeja usar um pool de instâncias. Consulte Determinar o tamanho necessário da sub-rede para obter as diretrizes de dimensionamento da sub-rede.

Use a seguinte fórmula ao calcular o número de endereços IP exigidos por um pool de instâncias contendo várias instâncias de uso geral:

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

O # of MIs refere-se ao número máximo potencial de instâncias que você planeja provisionar. O número máximo possível de instâncias no pool é 40.

Criar conjunto de instância

Você pode criar um pool de instâncias usando o PowerShell ou a CLI do Azure. Considere o seguinte:

  • Apenas a camada de serviço de uso geral em hardware da série padrão (Gen5) ou da série premium está disponível no momento.
  • O nome do pool pode conter apenas letras minúsculas, números e hífenes, e não pode começar com um hífen.
  • O Benefício Híbrido do Azure é aplicado no nível do pool de instâncias. Você pode definir o tipo de licença ao criar o pool e atualizá-lo depois que o pool for criado.

Importante

A implantação de um pool de instâncias é uma operação de longa execução que pode levar até 4,5 horas.

Para criar seu pool de instâncias, use New-AzSqlInstancePool.

Considere o seguinte:

  • Para LicenseType, use BasePrice para o Benefício Híbrido do Azure ou LicenseIncluded se você não tiver uma licença do SQL Server que possa ser usada para o desconto do Benefício Híbrido do Azure.
  • Use Get-AzLocation | select displayname, location para obter uma lista de regiões onde os pools de instâncias estão disponíveis.

Crie um novo pool de instâncias com 8 vCores em hardware da série padrão (Gen5) executando o seguinte script de exemplo:

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

Criar nova instância dentro do pool

Depois que o pool for criado, você poderá criar uma nova instância dentro do pool usando o PowerShell ou a CLI do Azure.

Para identificar parâmetros do pool, use Get-AzSqlInstancePool e crie sua instância dentro do pool específico com New-AzSqlInstance.

Crie uma nova instância em seu pool executando o seguinte script de exemplo:

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

Mover instância existente

Você pode mover uma instância existente para dentro e para fora de um pool usando o PowerShell ou a CLI do Azure se:

  • Ele está no mesmo grupo de recursos que o pool.
  • Está na mesma rede virtual e sub-rede que o pool.
  • Ele se ajusta aos limites de recursos do pool de instâncias.

Quando uma instância existente é movida para um pool, as configurações no nível do pool têm precedência sobre as configurações no nível da instância. Por exemplo, a instância herda o tipo de licença e a janela de manutenção definida no nível do pool. Quando uma instância é movida para fora do pool, ela mantém as configurações herdadas do pool. A única exceção é com o tipo de licença, que assume como padrão 'LicenseIncluded' quando uma instância é removida do pool de instâncias - o benefício do Benefício Híbrido do Azure e os direitos de failover híbridos devem ser configurados manualmente depois que uma instância é movida para fora de um pool.

Para mover uma instância para um pool, forneça o nome do pool ao usar Set-AzSqlInstance:

$instance01 | Set-AzSqlInstance -InstancePoolName $instancePoolName

Para mover uma instância para fora de um pool, forneça um nome de pool em branco :

$instance01 | Set-AzSqlInstance -InstancePoolName ''

Conectar-se à instância em um pool

Para se conectar a uma instância em um pool, primeiro habilite o ponto de extremidade público para a instância e, em seguida , permita o tráfego de ponto de extremidade público no grupo de segurança de rede.

Para habilitar o ponto de extremidade público para uma instância, defina -PublicDataEndpointEnabled como true quando atualizar as propriedades da instância com Set-AzSqlInstance:

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

Criar uma base de dados

Criar um banco de dados para uma instância dentro de um pool é o mesmo que criar um banco de dados para uma única instância. Você pode criar um novo banco de dados usando o PowerShell ou a CLI do Azure.

Para criar um novo banco de dados para sua instância, use New-AzSqlInstanceDatabase:

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

Obter a utilização da piscina

Você pode usar o PowerShell para determinar como os recursos estão sendo usados dentro de um pool.

Para obter uma lista de instâncias dentro de um pool, use Get-AzSqlInstance:

$instancePool | Get-AzSqlInstance

Para obter o uso de recursos do pool, use Get-AzSqlInstancePoolUsage:

$instancePool| Get-AzSqlInstancePoolUsage

Você pode adicionar o parâmetro -ExpandChildren para obter uma visão geral detalhada do pool e das instâncias dentro dele:

$instancePool | Get-AzSqlInstancePoolUsage –ExpandChildren

Para listar os bancos de dados em uma instância, use Get-AzSqlInstanceDatabase:

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

Nota

Para verificar os limites das instâncias implantadas em um pool e os bancos de dados por pool de instâncias, revise os limites de recursos.

Atualizar um pool de instâncias

Você pode usar o PowerShell para fazer alterações nos limites do pool de instâncias.

O script de exemplo a seguir altera o tipo de licença, o tamanho do vCore e o tipo de hardware:

Alterar tipo de licença:

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

Você também pode determinar as agendas de janela de manutenção disponíveis:

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

Em seguida, você pode alterar a janela de manutenção especificando uma opção de janela, como:

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

Atualizar uma instância em pool

Se os limites de recursos do pool não tiverem sido excedidos, você poderá modificar as configurações de recursos para uma instância dentro de um pool usando o PowerShell ou a CLI do Azure,

Para modificar parâmetros de recurso para uma instância dentro de um pool, use Set-AzSqlInstance.

Por exemplo, o script a seguir atualiza os vCores para 8 e altera o tamanho do armazenamento para 512 GB para Instance1:

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

Excluir um pool de instâncias

Você pode excluir um pool de instâncias usando o PowerShell ou a CLI do Azure, depois que todas as instâncias do pool tiverem sido excluídas ou movidas para fora do pool.

Para excluir um pool de instâncias, use Remove-AzSqlInstancePool.

O script de exemplo a seguir exclui um pool de instâncias vazio:

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

Operações de pool de instâncias

A tabela a seguir mostra as operações disponíveis do pool de instâncias:

Comando Portal do Azure PowerShell CLI do Azure
Criar conjunto de instância Não Sim Sim
Atualizar propriedades do pool Não Sim Sim
Verificar a utilização e as propriedades da piscina Sim Sim Sim
Excluir um pool de instâncias Sim Sim Sim
Criar uma instância gerenciada dentro de um pool Não Sim Sim
Mover uma instância gerenciada para um pool Não Sim Sim
Excluir uma instância gerenciada de um pool Sim Sim Sim
Mover uma instância gerenciada para fora de um pool Não Sim Sim
Criar um banco de dados em instância dentro de um pool Sim Sim Sim
Excluir um banco de dados da SQL Managed Instance Sim Sim Sim

Para usar o PowerShell, instale a versão mais recente do PowerShell Core e siga as instruções para Instalar o módulo do Azure PowerShell.

Comandos disponíveis do PowerShell:

Cmdlet Description
New-AzSqlInstancePool Cria um pool de instâncias.
Get-AzSqlInstancePool Retorna informações sobre um pool de instâncias.
Set-AzSqlInstancePool Define propriedades para um pool de instâncias.
Remove-AzSqlInstancePool Remove um pool de instâncias.
Get-AzSqlInstancePoolUsage Retorna informações sobre o uso do pool de instâncias.

Para operações relacionadas a instâncias dentro de pools e instâncias únicas, use os comandos de instância gerenciada padrão, mas a propriedade instance pool name deve ser preenchida ao usar esses comandos para uma instância em um pool.

Limitações

Durante a visualização pública, as instâncias em um pool têm as seguintes limitações:

  • O nome do pool pode conter apenas letras minúsculas, números e hífenes, e não pode começar com um hífen.
  • Todas as instâncias no pool usam o mesmo modelo de licenciamento. Quando você especifica um modelo de licença para uma instância diferente do modelo de licença para o pool, o modelo de licença do pool é usado. Quando a instância é movida para fora do pool, ela muda automaticamente para uma licença paga completa (LicenseType = 'LicenseIncluded'). Ative manualmente o Benefício Híbrido do Azure ou o benefício de direitos de failover híbrido para alterar o modelo de licenciamento.
  • As instâncias agrupadas devem pertencer à mesma sub-rede e ao mesmo grupo de recursos. Mover uma instância para dentro e para fora do pool só é possível dentro da sub-rede do pool e do mesmo grupo de recursos.
  • Apenas a camada de serviço de uso geral está disponível em hardware da série padrão (Gen5) ou da série premium. A camada de serviço Business Critical e o hardware otimizado para memória da série premium não estão disponíveis.
  • O número máximo possível de instâncias no pool é 40.
  • Um pool de instâncias só pode ser excluído depois que todas as instâncias no pool forem excluídas ou movidas para fora do pool.
  • Não é possível usar o portal do Azure para:
    • Configure o pool de instâncias. Em vez disso, use o PowerShell ou a CLI do Azure.
    • Mova instâncias para dentro e para fora do pool. Em vez disso, use o PowerShell ou a CLI do Azure.
  • Os seguintes recursos da Instância Gerenciada SQL não são suportados quando as instâncias estão em um pool:

Pedidos de suporte

Crie e gerencie solicitações de suporte para pools de instâncias no portal do Azure.

Se você estiver enfrentando problemas ao criar ou excluir uma instância, certifique-se de especificar Pools de instâncias no campo Subtipo de problema.

Screenshot of the Instance pools support request in the Azure portal.

Se você estiver enfrentando problemas relacionados a uma única instância gerenciada ou banco de dados dentro de um pool, crie um tíquete de suporte regular para a Instância Gerenciada SQL do Azure.

Para criar implantações maiores de Instância Gerenciada SQL (com ou sem pools de instâncias), talvez seja necessário obter uma cota regional maior. Para obter mais informações, consulte Solicitar aumentos de cota para o Banco de Dados SQL do Azure. A lógica de implantação para pools de instâncias compara o consumo total de vCore no nível do pool com sua cota para determinar se você tem permissão para criar novos recursos sem aumentar ainda mais sua cota.