A limpeza é 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 e evitar o aumento da tabela ou do índice. Ele também é usado para liberar IDs de transação e evitar o encapsulamento do ID de transação, além de atualizar as estatísticas da tabela.
Para mais informações sobre o vacuum, consulte Vacuum de rotina.
Para automatizar o processo de limpeza e atualização coletiva das estatísticas da tabela, o AlloyDB Omni oferece suporte à limpeza automática adaptativa. O autovacuum adaptável permite o ajuste automático da carga de trabalho de limpeza quando ela muda, remove tuplas mortas e atualiza as estatísticas da tabela.
O autovacuum 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 autovacuum adaptativo. É possível desativar ou modificar o autovacuum adaptativo no AlloyDB Omni usando flags de banco de dados.
Vantagens
O autovacuum 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 limpeza e memória para o processo de limpeza com base no status em tempo real da carga de trabalho e nos recursos disponíveis, sem afetar o desempenho do sistema.
Prevenção de encapsulamento de ID da transação. O AlloyDB Omni monitora o progresso do vacuum e a velocidade de consumo do ID da transação. Quando necessário, o AlloyDB Omni limita o consumo de IDs de transação limpando todas as tabelas no banco de dados, evitando o encapsulamento do ID da transação.
Vacuum periódico para tabelas. O AlloyDB Omni aciona o autovacuum com base no número de tuplas mortas e nas páginas que precisam ser verificadas. Ele remove tuplas mortas de maneira oportuna para evitar o inchaço da tabela ou do índice.
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 autovacuum adaptável
Por padrão, a autovacuum adaptativa está ativada no AlloyDB Omni. É possível
desativar o autovacuum adaptável 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
a vacuum e autovacuum, por exemplo, vacuum_cost_delay
e autovacuum_vacuum_cost_delay
.
Não é necessário definir valores em nenhuma dessas flags para que o autovacuum adaptável funcione, porque ele adapta e otimiza o comportamento para suas cargas de trabalho reais.
Se você definir valores nessas flags, o autovacuum adaptativo vai ajustar o comportamento
para considerar suas preferências.
Para conferir a lista completa de flags de banco de dados do PostgreSQL compatíveis relacionadas a vacuum e autovacuum, consulte flags de vacuum e flags de autovacuum.