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:
- Uma rede virtual existente com um intervalo de sub-redes de tamanho apropriado.
- O módulo Az.SQL mais recente para a versão atual do PowerShell ou a versão mais recente da CLI do Azure.
- Revisadas as propriedades da instância e do pool.
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:
- Grupos de failover. Os direitos de failover não estão disponíveis para instâncias em um pool.
- Iniciar/Parar.
- Redundância de zona.
- O preço da instância de capacidade reservada não está disponível.
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.
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.
Conteúdos relacionados
- Recursos comuns do SQL.
- Configuração de rede virtual da Instância Gerenciada SQL.
- Crie um início rápido de instância gerenciada.
- Migração de Instância Gerenciada SQL usando o Serviço de Migração de Banco de Dados.
- Monitore a Instância Gerenciada SQL do Azure usando o Azure SQL Analytics.
- Preços da instância gerenciada SQL.