Os pools elásticos ajudam você a gerenciar e dimensionar vários bancos de dados no Banco de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure

Os pools elásticos do Banco de Dados SQL do Azure são uma solução simples e econômica para gerenciar e dimensionar vários bancos de dados com demandas de uso variáveis e imprevisíveis. Os bancos de dados em um pool elástico estão em um único servidor e compartilham um número definido de recursos a um preço definido. Os pools elásticos no Banco de dados SQL permitem que os desenvolvedores de software como serviço (SaaS) otimizem o desempenho de preço para um grupo de bancos de dados dentro de um orçamento prescrito e, ao mesmo tempo, ofereçam elasticidade de desempenho para cada banco de dados.

O que são conjuntos de bases de dados elásticas SQL?

Os desenvolvedores de SaaS criam aplicativos sobre camadas de dados de grande escala com vários bancos de dados. Um padrão de aplicativo típico é provisionar um único banco de dados para cada cliente. No entanto, clientes diferentes geralmente têm padrões de uso variados e imprevisíveis, e é difícil prever os requisitos de recursos de cada usuário do banco de dados. Tradicionalmente, você tinha duas opções:

  • Recursos de provisionamento excessivo com base no pico de uso e pagamento excessivo.
  • Subprovisão para economizar custos em detrimento do desempenho e da satisfação do cliente durante os picos.

Os pools elásticos resolvem esse problema garantindo que os bancos de dados obtenham os recursos de desempenho de que precisam quando precisarem. Fornecem um mecanismo de alocação de recursos simples dentro de um orçamento previsível. Para saber mais sobre padrões de design para aplicativos SaaS usando pools elásticos, consulte Padrões de design para aplicativos SaaS multilocatários com o Banco de dados SQL.

Importante

Não há cobrança por banco de dados para pools elásticos. Você é cobrado por cada hora em que um pool existe no eDTU ou vCores mais alto, independentemente do uso ou se o pool ficou ativo por menos de uma hora.

Os pools elásticos permitem que você compre recursos para um pool compartilhado por vários bancos de dados para acomodar períodos de uso imprevisíveis por bancos de dados individuais. Você pode configurar recursos para o pool com base no modelo de compra baseado em DTU ou no modelo de compra baseado em vCore. A utilização agregada de seus bancos de dados determina o requisito de recursos para um pool.

A quantidade de recursos disponíveis para o pool é controlada pelo seu orçamento. Tudo o que tem de fazer é:

  • Adicione bancos de dados ao pool.
  • Opcionalmente, defina os recursos mínimos e máximos para os bancos de dados. Esses recursos são DTUs mínimas e máximas ou vCores mínimas ou máximas, dependendo do modelo de recursos escolhido.
  • Defina os recursos do pool com base no seu orçamento.

Você pode usar pools para expandir perfeitamente seu serviço de uma startup enxuta para um negócio maduro em uma escala cada vez maior.

Dentro do conjunto, as bases de dados individuais têm flexibilidade para utilizar os recursos dentro de parâmetros definidos. Sob carga pesada, um banco de dados pode consumir mais recursos para atender à demanda. Bancos de dados sob cargas leves consomem menos e bancos de dados sem carga não consomem recursos. O aprovisionamento de recursos para o conjunto completo e não para bases de dados individuais simplifica as tarefas de gestão. Além disso, você tem um orçamento previsível para a piscina.

Mais recursos podem ser adicionados a um pool existente com o mínimo de tempo de inatividade. Se recursos extras não forem mais necessários, eles podem ser removidos de um pool existente a qualquer momento. Você também pode adicionar ou remover bancos de dados do pool. Se um banco de dados estiver previsivelmente subutilizando recursos, você poderá movê-lo para fora.

Nota

Quando você move bancos de dados para dentro ou para fora de um pool elástico, não há tempo de inatividade, exceto por um breve período (na ordem de segundos) quando as conexões de banco de dados são descartadas no final da operação.

Quando considerar um pool elástico do Banco de dados SQL?

Os conjuntos são bastante adequados para um grande número de bases de dados com padrões de utilização específicos. Esse padrão é caracterizado por baixa utilização média com picos de utilização pouco frequentes para um determinado banco de dados. Por outro lado, vários bancos de dados com utilização persistente média-alta não devem ser colocados no mesmo pool elástico.

Quanto mais bancos de dados você puder adicionar a um pool, maiores serão suas economias. Dependendo do padrão de utilização do seu aplicativo, é possível obter economias com apenas dois bancos de dados do S3.

As secções seguintes ajudam-no a avaliar se a sua coleção de bases de dados específica pode beneficiar de estar num conjunto. Os exemplos usam pools padrão, mas os mesmos princípios se aplicam a pools elásticos em outras camadas de serviço.

Avaliar padrões de utilização do banco de dados

A figura a seguir mostra um exemplo de um banco de dados que passa grande parte de seu tempo ocioso, mas periodicamente aumenta com a atividade. Esse padrão de utilização é adequado para um pool.

Chart that shows a single database suitable for a pool.

O gráfico ilustra o uso da DTU durante uma hora, das 12:00 à 1:00, onde cada ponto de dados tem granularidade de um minuto. Às 12:10, o DB1 atinge um pico de até 90 DTUs, mas seu uso médio geral é inferior a cinco DTUs. Um tamanho de computação do S3 é necessário para executar essa carga de trabalho em um único banco de dados, mas esse tamanho deixa a maioria dos recursos não utilizados durante períodos de baixa atividade.

Um pool permite que essas DTUs não utilizadas sejam compartilhadas entre vários bancos de dados. Um pool reduz as DTUs necessárias e o custo total.

Com base no exemplo anterior, suponha que outros bancos de dados tenham padrões de utilização semelhantes aos do DB1. Nas duas figuras a seguir, a utilização de 4 bancos de dados e 20 bancos de dados são colocados em camadas no mesmo gráfico para ilustrar a natureza não sobreposta de sua utilização ao longo do tempo usando o modelo de compra baseado em DTU:

Chart that shows four databases with a utilization pattern suitable for a pool.

Chart that shows 20 databases with a utilization pattern suitable for a pool.

A linha preta no gráfico anterior ilustra a utilização agregada da DTU em todos os 20 bancos de dados. Esta linha mostra que a utilização agregada de DTU nunca excede 100 DTUs e indica que os 20 bancos de dados podem compartilhar 100 eDTUs durante esse período. O resultado é uma redução de 20 vezes nas DTUs e uma redução de preço de 13 vezes em comparação com a colocação de cada banco de dados em tamanhos de computação S3 para bancos de dados únicos.

Este exemplo é ideal porque:

  • Existem grandes diferenças entre a utilização de pico e utilização média por base de dados.
  • A utilização de pico de cada base de dados ocorre em diferentes alturas no tempo.
  • Os eDTUs são partilhados entre muitas bases de dados.

No modelo de compra de DTU, o preço de um pool é uma função do pool eDTUs. Enquanto o preço unitário da eDTU para um pool é 1,5 vezes maior do que o preço unitário da DTU para um único banco de dados, as eDTUs do pool podem ser compartilhadas por muitos bancos de dados e menos eDTUs totais são necessárias. Estas distinções nos preços e na partilha das eDTUs são as bases do potencial de poupança nos custos que os conjuntos podem proporcionar.

No modelo de compra vCore, o preço unitário vCore para pools elásticos é o mesmo que o preço unitário vCore para bancos de dados únicos.

Como escolher o tamanho correto da piscina?

O melhor tamanho para um pool depende dos recursos agregados necessários para todos os bancos de dados no pool. Você precisa determinar:

  • Máximo de recursos de computação utilizados por todos os bancos de dados no pool. Os recursos de computação são indexados por eDTUs ou vCores, dependendo do modelo de compra escolhido.
  • Bytes de armazenamento máximos utilizados por todas as bases de dados do conjunto.

Para obter camadas de serviço e limites de recursos em cada modelo de compra, consulte o modelo de compra baseado em DTU ou o modelo de compra baseado em vCore.

Nota

Os pools elásticos para Hyperscale estão atualmente em visualização.

As etapas a seguir podem ajudá-lo a estimar se um pool é mais econômico do que bancos de dados únicos:

  1. Calcular as eDTUs ou vCores necessários para o conjunto:

    1. Para o modelo de compra baseado em DTU:
      1. MAX(<Número total de DBs × Utilização média de DTU por DB, <Número de DBs com pico simultâneo × Utilização de DTU de pico por DB>>)
    2. Para o modelo de compra baseado em vCore:
      1. MAX(<Número total de DBs × Utilização média do vCore por DB,< Número de DBs com picos simultâneos × Pico de utilização do vCore por DB>>)
  2. Calcule o espaço total de armazenamento necessário para o conjunto ao somar o tamanho de dados necessário para todas as bases de dados do conjunto. Para o modelo de compra de DTU, determine o tamanho do pool de eDTU que fornece essa quantidade de armazenamento.

  3. Para o modelo de compra baseado em DTU, considere a estimativa mais elevada de eDTUs obtida nos passos 1 e 2.

    1. Para o modelo de compra baseado em vCore, considere a estimativa vCores do passo 1.
  4. Consulte a página de preços do Banco de dados SQL.

    1. Encontre o menor tamanho de piscina maior do que a estimativa da etapa 3.
  5. Compare o preço do pool da etapa 4 com o uso dos tamanhos de computação apropriados para bancos de dados únicos.

Importante

Se o número de bancos de dados em um pool se aproximar do máximo suportado, considere o gerenciamento de recursos em pools elásticos densos.

Propriedades por banco de dados

Opcionalmente, defina propriedades por banco de dados para modificar padrões de consumo de recursos em pools elásticos. Para obter mais informações, consulte a documentação de limites de recursos para pools elásticos DTU e vCore .

Usar outros recursos do Banco de dados SQL com pools elásticos

Você pode usar outros recursos do Banco de dados SQL com pools elásticos.

Trabalhos elásticos e piscinas elásticas

Com um conjunto, as tarefas de gestão são simplificadas através da execução de scripts em tarefas elásticas. Um trabalho elástico elimina a maior parte do tédio associado a um grande número de bancos de dados.

Para obter mais informações sobre outras ferramentas de banco de dados para trabalhar com vários bancos de dados, consulte Dimensionamento com o Banco de dados SQL.

Opções de continuidade de negócios para bancos de dados em um pool elástico

Os bancos de dados agrupados geralmente oferecem suporte aos mesmos recursos de continuidade de negócios disponíveis para bancos de dados únicos:

  • Restauração point-in-time: a restauração point-in-time usa backups automáticos de banco de dados para recuperar um banco de dados em um pool para um point-in-time específico. Consulte Restauração point-in-time.
  • Restauração geográfica: a restauração geográfica fornece a opção de recuperação padrão quando um banco de dados está indisponível devido a um incidente na região onde o banco de dados está hospedado. Consulte Geo-restauração.
  • Replicação geográfica ativa: para aplicativos que têm requisitos de recuperação mais agressivos do que a restauração geográfica pode oferecer, configure a replicação geográfica ativa ou um grupo de failover.

Para obter mais informações sobre as estratégias acima, consulte Diretrizes de recuperação de desastres do Banco de Dados SQL do Azure.

Criar um novo pool elástico do Banco de Dados SQL usando o portal do Azure

Você pode criar um pool elástico no portal do Azure de duas maneiras:

  • Crie um pool elástico e selecione um servidor novo ou existente.
  • Crie um pool elástico a partir de um servidor existente.

Para criar um pool elástico e selecionar um servidor novo ou existente:

  1. Vá para o portal do Azure para criar um pool elástico. Procure e selecione Azure SQL.

  2. Selecione Criar para abrir o painel de opções Selecionar implantação SQL. Para exibir mais informações sobre pools elásticos, no bloco Bancos de dados , selecione Mostrar detalhes.

  3. No bloco Bancos de dados, na lista suspensa Tipo de recurso, selecione Pool elástico. Depois, selecione Criar.

    Screenshot that shows creating an elastic pool.

Para criar um pool elástico a partir de um servidor existente:

  • Vá para um servidor existente e selecione Novo pool para criar um pool diretamente nesse servidor.

Nota

Você pode criar vários pools em um servidor, mas não pode adicionar bancos de dados de servidores diferentes ao mesmo pool.

A camada de serviço do pool determina os recursos disponíveis para os elásticos no pool e a quantidade máxima de recursos disponíveis para cada banco de dados. Para obter mais informações, consulte limites de recursos para pools elásticos no modelo DTU. Para limites de recursos baseados em vCore para pools elásticos, consulte Limites de recursos baseados em vCore - pools elásticos.

Para configurar os recursos e os preços do pool, selecione Configurar pool. Em seguida, selecione uma camada de serviço, adicione bancos de dados ao pool e configure os limites de recursos para o pool e seus bancos de dados.

Depois de configurar o pool, selecione Aplicar, nomeie o pool e selecione OK para criar o pool.

Monitorar um pool elástico e seus bancos de dados

No portal do Azure, você pode monitorar a utilização de um pool elástico e os bancos de dados dentro desse pool. Você também pode fazer um conjunto de alterações no seu pool elástico e enviar todas as alterações ao mesmo tempo. Essas alterações incluem adicionar ou remover bancos de dados, alterar as configurações do pool elástico ou alterar as configurações do banco de dados.

Você pode usar as ferramentas internas de monitoramento e alerta de desempenho combinadas com classificações de desempenho. O Banco de dados SQL também pode emitir métricas e logs de recursos para facilitar o monitoramento.

Casos de estudo de clientes

`- SnelStart: a SnelStart usou pools elásticos com o Banco de dados SQL para expandir rapidamente seus serviços de negócios a uma taxa de 1.000 novos bancos de dados SQL por mês.

  • Umbraco: A Umbraco usa pools elásticos com o Banco de dados SQL para provisionar e dimensionar rapidamente serviços para milhares de locatários na nuvem.
  • Daxko/CSI: A Daxko/CSI usa pools elásticos com o Banco de dados SQL para acelerar seu ciclo de desenvolvimento e melhorar o desempenho e o atendimento ao cliente.