Partilhar via


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: do 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 pools elásticos 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. Eles fornecem um mecanismo simples de alocação de recursos dentro de um orçamento previsível. Para saber mais sobre modelos de design para aplicações SaaS utilizando pools elásticos, consulte Padrões de locação de base de dados SaaS multi-inquilino.

Importante

Não há cobrança por banco de dados para pools elásticos. Você é cobrado por cada hora em que um pool existe com o eDTU ou vCores no nível mais alto, independentemente do uso ou de o pool ter ficado em funcionamento 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 o modelo de compra baseado em DTU ou com o 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, no modelo de compra DTU ou vCore.
  • 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 pool, os bancos de dados individuais têm a flexibilidade de usar 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 todo o pool em vez de para bases de dados únicas simplifica as suas tarefas de gerenciamento de . 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.

Observação

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 pools são adequados para um grande número de bancos 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 seções a seguir ajudam você a entender como avaliar se sua coleção específica de bancos de dados pode se beneficiar de estar em um pool. 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 do seu tempo de inatividade, mas periodicamente tem picos de atividade. Esse padrão de utilização é adequado para um pool.

Gráfico que mostra um único banco de dados adequado para um 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:

Gráfico que mostra quatro bancos de dados com um padrão de utilização adequado para um pool.

Gráfico que mostra 20 bancos de dados com um padrão de utilização adequado para um 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:

  • Há grandes diferenças entre o pico de utilização e a utilização média por banco de dados.
  • O pico de utilização de cada banco de dados ocorre em diferentes momentos.
  • As eDTUs são compartilhadas entre muitos bancos de dados.

No modelo de compra de DTU, o preço de um pool é determinado pelos eDTUs do pool. Embora o preço unitário da eDTU para um pool seja 1,5 vezes maior do que o preço unitário da DTU para um único banco de dados, eDTUs do pool podem ser compartilhados por muitos bancos de dados e são necessárias menos eDTUs totais. Estas distinções nos preços e na partilha de eDTU são a base do potencial de poupança de preços que os agrupamentos 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.
  • Máximo de bytes de armazenagem utilizados por todos os bancos de dados no pool.

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 .

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

  1. Estime os eDTUs ou vCores necessários para o pool:

    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 que atingem o pico simultaneamente × Pico de utilização de DTU por DB>)
    2. Para o modelo de compra baseado em vCore:
      1. MAX(<Número total de bancos de dados × Utilização média do vCore por banco de dados>, <Número de bancos de dados com pico simultâneo × Pico de utilização do vCore por banco de dados>)
  2. Estime o espaço de armazenamento total necessário para o pool adicionando o tamanho de dados necessário para todos os bancos de dados no pool. Para o modelo de aquisição de DTU, determine o tamanho do pool de eDTU que fornece essa quantidade de armazenamento.

  3. Para o modelo de compra baseado em DTU, selecione a maior das estimativas de eDTU das etapas 1 e 2.

    1. Para o modelo de compra baseado em vCore, use a estimativa de vCore da etapa 1.
  4. Consulte a página de preços da Base 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 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 DTU e pools elásticos 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 pool, as tarefas de gestão são simplificadas ao executar 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 Dimensionar com o Banco de Dados SQL do Azure.

Grupos elásticos de hiperescala

Visão Geral dos Pools Elásticos de Hiperescala no Banco de Dados SQL do Azure estão geralmente disponíveis.

Instâncias de expansão somente leitura

Não é possível usar instâncias de expansão somente leitura do Banco de Dados SQL do Azure com consulta elástica.

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 que estão disponíveis para bancos de dados únicos:

  • Restauração no ponto no tempo: a restauração no ponto no tempo usa backups automáticos de banco de dados para recuperar um banco de dados em um pool para um ponto específico no tempo. Ver restauração no ponto no tempo.
  • de 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 restauração geográfica.
  • de 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 de replicação geográfica ativa ou um grupo de failover de .

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

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 Azure para criar um pool elástico. Procure e selecione Azure SQL.

  2. Selecione Criar para abrir o painel Opção de Implantação SQL Selecionar. 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. Em seguida, selecione Criar.

    Captura de tela que mostra a criação de um pool elástico.

  4. Em seguida, gerencie o seu pool elástico por meio do portal do Azure, PowerShell, CLI do Azure, API REST ou T-SQL.

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

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

    Observação

    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 as funcionalidades disponíveis para os componentes 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.

  2. Para configurar os recursos e a definição de preço 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.

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

  4. Em seguida, gere o seu pool elástico através do portal do Azure, do PowerShell, da CLI do Azure, da API REST ou T-SQL.

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 o interno de monitoramento de desempenho do e as ferramentas de alerta combinadas com classificações de desempenho. O Banco de dados SQL também pode métricas de emissão e logs de recursos para facilitar o monitoramento.

Estudos de caso 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.