Configurar o autovacuum adaptável

Selecione uma versão da documentação:

Esta página oferece uma visão geral do vácuo automático adaptativo do AlloyDB Omni e descreve como configurá-lo.

O vácuo é uma operação importante de manutenção do banco de dados PostgreSQL. Ele é usado para recuperar o espaço de armazenamento ocupado por linhas atualizadas ou excluídas para evitar o inchaço de tabelas ou índices. Ele também é usado para congelar IDs de transação para evitar o encapsulamento de ID de transação e para atualizar as estatísticas da tabela.

Para mais informações sobre o vácuo, consulte Vácuo de rotina (em inglês).

Para automatizar o processo de vácuo e atualizar coletivamente as estatísticas da tabela, o AlloyDB Omni oferece suporte ao vácuo automático adaptativo. O vácuo automático adaptativo permite o ajuste automático da carga de trabalho de vácuo quando a carga de trabalho muda, remove tuplas inativas e atualiza as estatísticas da tabela.

O vácuo automático garante um desempenho transacional de aplicativo confiável e consistente e mantém a alta disponibilidade do sistema, evitando o encapsulamento do ID da transação.

Por padrão, o AlloyDB Omni ativa o vácuo automático adaptativo. É possível desativar ou modificar o vácuo automático adaptativo no AlloyDB Omni usando flags de banco de dados.

Benefícios

O vácuo automático adaptativo oferece os seguintes benefícios:

  • Ajuste automático de recursos. O AlloyDB Omni ajusta automaticamente recursos como CPU, E/S, número de processos de vácuo e memória para o processo de vácuo com base no status em tempo real da carga de trabalho e nos recursos disponíveis, sem afetar o desempenho do sistema.

  • Prevenção do encapsulamento do ID da transação. O AlloyDB Omni monitora o progresso do vácuo e a velocidade de consumo do ID da transação. Quando necessário, o AlloyDB Omni limita o consumo do ID da transação fazendo o vácuo de cada tabela no banco de dados, evitando o encapsulamento do ID da transação.

  • Vácuo periódico para tabelas. O AlloyDB Omni aciona o vácuo automático com base no número de tuplas inativas e nas páginas que precisam ser verificadas. Ele remove tuplas inativas em tempo hábil para evitar o inchaço de tabelas ou índices.

  • Detecção automática de bloqueadores. O AlloyDB Omni detecta automaticamente bloqueadores, como transações de longa duração, transações preparadas órfãs, slots de replicação órfãos e mostra mensagens de aviso semelhantes às seguintes no registro postgres:

    Found a backend process PROCESS_ID with a long running transaction whose transaction
    id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
    

Configurar o vácuo automático adaptativo

Por padrão, o vácuo automático adaptativo está ativado no AlloyDB Omni. É possível desativar o vácuo automático adaptativo definindo a flag de banco de dados enable_google_adaptive_autovacuum de uma instância como off.

O AlloyDB Omni oferece suporte a várias flags de banco de dados PostgreSQL padrão relacionadas ao vácuo e ao vácuo automático, por exemplo, vacuum_cost_delay e autovacuum_vacuum_cost_delay. Não é necessário definir valores em nenhuma dessas flags para que o vácuo automático adaptativo funcione, porque ele se adapta e otimiza o comportamento para suas cargas de trabalho reais. Se você definir valores nessas flags, o vácuo automático adaptativo ajustará o comportamento para considerar suas preferências.

Para conferir a lista completa de flags de banco de dados PostgreSQL com suporte relacionadas ao vácuo e ao vácuo automático, consulte Flags de vácuo e Flags de vácuo automático.