Limites na Base de Dados do Azure para PostgreSQL – Servidor Flexível
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
As seções a seguir descrevem a capacidade e os limites funcionais no Banco de Dados do Azure para o servidor flexível PostgreSQL. Se quiser saber mais sobre as camadas de recursos (computação, memória, armazenamento), consulte os artigos de computação e armazenamento .
Número máximo de ligações
A tabela a seguir mostra o número máximo padrão de conexões para cada camada de preço e configuração vCore. O servidor flexível do Banco de Dados do Azure para PostgreSQL reserva 15 conexões para replicação física e monitoramento da instância de servidor flexível do Banco de Dados do Azure para PostgreSQL. Consequentemente, o valor para o máximo de conexões de usuário listado na tabela é reduzido em 15 do total de conexões máximas.
Nome do Produto | vCores | Tamanho da memória | Número máximo de ligações | Máximo de conexões de usuário |
---|---|---|---|---|
Burstable | ||||
B1ms | 1 | 2 GiB | 50 | 35 |
B2s | 2 | 4 GiB | 429 | 414 |
B2ms | 2 | 8 GiB | 859 | 844 |
B4ms | 4 | 16 GiB | 1,718 | 1,703 |
B8ms | 8 | 32 GiB | 3,437 | 3,422 |
B12ms | 12 | 48 GiB | 5.000 | 4,985 |
B16ms | 16 | 64 GiB | 5.000 | 4,985 |
B20ms | 20 | 80 GiB | 5.000 | 4,985 |
Fins Gerais | ||||
D2s_v3 / D2ds_v4 / D2ds_v5 / D2ads_v5 | 2 | 8 GiB | 859 | 844 |
D4s_v3 / D4ds_v4 / D4ds_v5 / D4ads_v5 | 4 | 16 GiB | 1,718 | 1,703 |
D8s_v3 / D8ds_V4 / D8ds_v5 / D8ads_v5 | 8 | 32 GiB | 3,437 | 3,422 |
D16s_v3 / D16ds_v4 / D16ds_v5 / D16ads_v5 | 16 | 64 GiB | 5.000 | 4,985 |
D32s_v3 / D32ds_v4 / D32ds_v5 / D32ads_v5 | 32 | 128 GiB | 5.000 | 4,985 |
D48s_v3 / D48ds_v4 / D48ds_v5 / D48ads_v5 | 48 | 192 GiB | 5.000 | 4,985 |
D64s_v3 / D64ds_v4 / D64ds_v5 / D64ads_v5 | 64 | 256 GiB | 5.000 | 4,985 |
D96ds_v5 / D96ads_v5 | 96 | 384 GiB | 5.000 | 4,985 |
Memória otimizada | ||||
E2s_v3 / E2ds_v4 / E2ds_v5 / E2ads_v5 | 2 | 16 GiB | 1,718 | 1,703 |
E4s_v3 / E4ds_v4 / E4ds_v5 / E4ads_v5 | 4 | 32 GiB | 3,437 | 3,422 |
E8s_v3 / E8ds_v4 / E8ds_v5 / E8ads_v5 | 8 | 64 GiB | 5.000 | 4,985 |
E16s_v3 / E16ds_v4 / E16ds_v5 / E16ads_v5 | 16 | 128 GiB | 5.000 | 4,985 |
E20ds_v4 / E20ds_v5 / E20ads_v5 | 20 | 160 GiB | 5.000 | 4,985 |
E32s_v3 / E32ds_v4 / E32ds_v5 / E32ads_v5 | 32 | 256 GiB | 5.000 | 4,985 |
E48s_v3 / E48ds_v4 / E48ds_v5 / E48ads_v5 | 48 | 384 GiB | 5.000 | 4,985 |
E64s_v3 / E64ds_v4 / E64ds_v5 / E64ads_v5 | 64 | 432 GiB | 5.000 | 4,985 |
E96ds_v5 / E96ads_v5 | 96 | 672 GiB | 5.000 | 4,985 |
Os slots de conexão reservados, atualmente em 15, podem mudar. Aconselhamos verificar regularmente o total de conexões reservadas no servidor. Você calcula reserved_connections
esse número somando os valores dos parâmetros e superuser_reserved_connections
do servidor. O número máximo de conexões de usuário disponíveis é max_connections
- ( + reserved_connections
superuser_reserved_connections
).
O valor padrão para o max_connections
parâmetro server é calculado quando você provisiona a instância do Banco de Dados do Azure para servidor flexível PostgreSQL, com base no nome do produto selecionado para sua computação. Quaisquer alterações subsequentes da seleção de produtos para a computação que suporta o servidor flexível não terão qualquer efeito sobre o valor padrão para o max_connections
parâmetro de servidor dessa instância. Recomendamos que, sempre que alterar o produto atribuído a uma instância, você também ajuste o valor do max_connections
parâmetro de acordo com os valores da tabela anterior.
Alterar o valor max_connections
Quando você configura pela primeira vez seu Banco de Dados do Azure para instância de servidor flexível do Postgres, ele decide automaticamente o maior número de conexões que pode manipular simultaneamente. Este número é baseado na configuração do seu servidor e não pode ser alterado.
No entanto, você pode usar a max_connections
configuração para ajustar quantas conexões são permitidas em um determinado momento. Depois de alterar essa configuração, você precisa reiniciar o servidor para que o novo limite comece a funcionar.
Atenção
Embora seja possível aumentar o valor de max_connections
além da configuração padrão, desaconselhamos isso.
As instâncias podem encontrar dificuldades quando a carga de trabalho se expande e exige mais memória. À medida que o número de conexões aumenta, o uso de memória também aumenta. Instâncias com memória limitada podem enfrentar problemas como falhas ou alta latência. Embora um valor mais alto para max_connections
possa ser aceitável quando a maioria das conexões está ociosa, isso pode levar a problemas de desempenho significativos depois que elas se tornam ativas.
Se você precisar de mais conexões, sugerimos que use o PgBouncer, a solução interna do Azure para gerenciamento do pool de conexões. Use-o no modo de transação. Para começar, recomendamos que você use valores conservadores multiplicando os vCores dentro do intervalo de 2 a 5. Depois, monitore cuidadosamente a utilização de recursos e o desempenho do aplicativo para garantir uma operação suave. Para obter informações detalhadas sobre PgBouncer, consulte PgBouncer no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Quando as conexões excedem o limite, você pode receber o seguinte erro:
FATAL: sorry, too many clients already.
Quando você estiver usando o Banco de Dados do Azure para servidor flexível PostgreSQL para um banco de dados ocupado com um grande número de conexões simultâneas, pode haver uma pressão significativa sobre os recursos. Essa tensão pode resultar em alta utilização da CPU, especialmente quando muitas conexões são estabelecidas simultaneamente e quando as conexões têm durações curtas (menos de 60 segundos). Esses fatores podem afetar negativamente o desempenho geral do banco de dados, aumentando o tempo gasto no processamento de conexões e desconexões.
Lembre-se de que cada conexão no Banco de Dados do Azure para servidor flexível PostgreSQL, independentemente de estar ociosa ou ativa, consome uma quantidade significativa de recursos do seu banco de dados. Esse consumo pode levar a problemas de desempenho além da alta utilização da CPU, como contenção de disco e bloqueio. O artigo Número de conexões de banco de dados no Wiki do PostgreSQL discute esse tópico com mais detalhes. Para saber mais, consulte Identificar e resolver o desempenho da conexão no Banco de Dados do Azure para servidor flexível PostgreSQL.
Limitações funcionais
As seções a seguir listam considerações sobre o que é ou não suportado no Banco de Dados do Azure para servidor flexível PostgreSQL.
Operações de escala
- Neste momento, a expansão do armazenamento do servidor requer uma reinicialização do servidor.
- O armazenamento do servidor só pode ser dimensionado em incrementos de 2x, consulte Armazenamento para obter detalhes.
- Atualmente, não há suporte para a diminuição do tamanho do armazenamento do servidor. A única maneira de fazer é despejá-lo e restaurá-lo para uma nova instância de servidor flexível do Banco de Dados do Azure para PostgreSQL.
Armazenamento
- Depois de configurar o tamanho do armazenamento, não é possível reduzi-lo. Você precisa criar um novo servidor com o tamanho de armazenamento desejado, executar uma operação manual de despejo e restauração e migrar seus bancos de dados para o novo servidor.
- Quando o uso do armazenamento atinge 95% ou se a capacidade disponível é inferior a 5 GiB (o que for maior), o servidor é automaticamente alternado para o modo somente leitura para evitar erros associados a situações de disco cheio. Em casos raros, se a taxa de crescimento de dados superar o tempo necessário para mudar para o modo somente leitura, o servidor ainda poderá ficar sem armazenamento. Você pode habilitar o crescimento automático do armazenamento para evitar esses problemas e dimensionar automaticamente o armazenamento com base nas demandas de carga de trabalho.
- Recomendamos definir regras de alerta para
storage used
oustorage percent
quando elas excederem determinados limites, para que você possa tomar medidas proativas, como aumentar o tamanho do armazenamento. Por exemplo, você pode definir um alerta se a porcentagem de armazenamento exceder 80% de uso. - Se você estiver usando a replicação lógica, deverá descartar o slot de replicação lógica no servidor primário se o assinante correspondente não existir mais. Caso contrário, os arquivos de log write-ahead (WAL) se acumulam no primário e preenchem o armazenamento. Se o armazenamento exceder um determinado limite e se o slot de replicação lógica não estiver em uso (devido a um assinante indisponível), o servidor flexível do Banco de Dados do Azure para PostgreSQL descartará automaticamente esse slot de replicação lógica não utilizado. Essa ação libera arquivos WAL acumulados e evita que o servidor fique indisponível porque o armazenamento está cheio.
- Não apoiamos a criação de espaços de mesa. Se você estiver criando um banco de dados, não forneça um nome de espaço de tabela. O servidor flexível do Banco de Dados do Azure para PostgreSQL usa o padrão herdado do banco de dados de modelo. Não é seguro fornecer um espaço de tabela como o temporário, porque não podemos garantir que esses objetos permaneçam persistentes após eventos como reinicializações do servidor e failovers de alta disponibilidade (HA).
Rede
- Atualmente, não há suporte para entrar e sair de uma rede virtual.
- Atualmente, não há suporte para a combinação de acesso público com implantação em uma rede virtual.
- As regras de firewall não são suportadas em redes virtuais. Em vez disso, você pode usar grupos de segurança de rede.
- Os servidores de banco de dados de acesso público podem se conectar à internet pública; por exemplo, através de
postgres_fdw
. Não é possível restringir esse acesso. Os servidores em redes virtuais podem ter acesso de saída restrito através de grupos de segurança de rede.
Elevada disponibilidade
- Consulte Alta disponibilidade (confiabilidade) no Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Zonas de disponibilidade
- Atualmente, não há suporte para mover manualmente servidores para uma zona de disponibilidade diferente. No entanto, usando a zona de disponibilidade preferida como a zona de espera, você pode ativar o HA. Depois de estabelecer a zona de espera, você pode fazer failover para ela e, em seguida, desativar o HA.
Motor Postgres, extensões e PgBouncer
- Postgres 10 e versões mais antigas não são suportadas, porque a comunidade de código aberto os aposentou. Se você precisar usar uma dessas versões, precisará usar a opção de servidor único do Banco de Dados do Azure para PostgreSQL, que dá suporte às versões principais mais antigas 9.5, 9.6 e 10.
- O servidor flexível do Banco de Dados do Azure para PostgreSQL dá suporte a todas as
contrib
extensões e muito mais. Para obter mais informações, consulte Extensões PostgreSQL. - O pool de conexões PgBouncer integrado não está disponível para servidores Burstable no momento.
Parar/iniciar operações
- Depois de parar a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, ela é iniciada automaticamente após 7 dias.
Manutenção agendada
- Você pode alterar a janela de manutenção personalizada para qualquer dia/hora da semana. No entanto, quaisquer alterações feitas depois de receber a notificação de manutenção não terão impacto na próxima manutenção. As alterações entram em vigor apenas com a seguinte manutenção programada mensal.
Backups do servidor
O sistema gerencia backups. Atualmente, não há como executar backups manualmente. Recomendamos o uso
pg_dump
em vez disso.O primeiro snapshot é um backup completo, e snapshots consecutivos são backups diferenciais. Os backups diferenciais fazem backup apenas dos dados alterados desde o último backup de snapshot.
Por exemplo, se o tamanho do banco de dados for de 40 GB e o armazenamento provisionado for de 64 GB, o primeiro backup de snapshot será de 40 GB. Agora, se você alterar 4 GB de dados, o próximo tamanho de backup de snapshot diferencial será de apenas 4 GB. Os logs de transações (logs write-ahead) são separados dos backups completos e diferenciais e são arquivados continuamente.
Restauração do servidor
- Quando você estiver usando o recurso de restauração point-in-time (PITR), o novo servidor é criado com as mesmas configurações de computação e armazenamento do servidor no qual ele se baseia.
- Os servidores de banco de dados em redes virtuais são restaurados nas mesmas redes virtuais quando você restaura a partir de um backup.
- O novo servidor criado durante uma restauração não tem as regras de firewall que existiam no servidor original. Você precisa criar regras de firewall separadamente para o novo servidor.
- Não há suporte para restaurar para uma assinatura diferente. Como solução alternativa, você pode restaurar o servidor dentro da mesma assinatura e, em seguida, migrar o servidor restaurado para uma assinatura diferente.
Segurança
- O hash MD5 está desativado no Postgres 14 e versões posteriores e as senhas nativas do Postgres serão colocadas em hash usando apenas o método SCRAM-SHA-256.
Conteúdos relacionados
- Compreender o que está disponível para opções de computação
- Compreender o que está disponível para as opções de armazenamento
- Saiba mais sobre as versões suportadas do banco de dados PostgreSQL
- Revise como fazer backup e restaurar um servidor no Banco de Dados do Azure para servidor flexível PostgreSQL usando o portal do Azure