A limpeza é uma operação de manutenção importante da base de dados PostgreSQL. É usado para reclamar espaço de armazenamento ocupado por linhas atualizadas ou eliminadas para evitar o aumento excessivo da tabela ou do índice. Também é usado para congelar IDs das transações para evitar a repetição de IDs das transações e para atualizar as estatísticas da tabela.
Para mais informações sobre a aspiração, consulte o artigo Aspiração de rotina.
Para automatizar o processo de limpeza e atualizar coletivamente as estatísticas das tabelas, o AlloyDB Omni suporta a limpeza automática adaptativa. A limpeza automática adaptável permite o ajuste automático da carga de trabalho de limpeza quando a sua carga de trabalho muda, remove tuplos inativos e atualiza as estatísticas das tabelas.
O autovacuum garante um desempenho transacional da aplicação fiável e consistente e mantém a elevada disponibilidade do sistema, evitando a repetição do ID da transação.
Por predefinição, o AlloyDB Omni ativa o autovacuum adaptável. Pode desativar ou modificar o autovacuum adaptável no AlloyDB Omni usando flags da base de dados.
Vantagens
O autovacuum adaptativo oferece as seguintes vantagens:
Ajuste automático dos recursos. O AlloyDB Omni ajusta automaticamente os recursos, como a CPU, a E/S, o número de processos de vácuo e a memória para o processo de vácuo, com base no estado em tempo real da carga de trabalho e nos recursos disponíveis, sem afetar o desempenho do sistema.
Prevenção da repetição do ID da transação. O AlloyDB Omni monitoriza 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 das transações limpando todas as tabelas na base de dados, o que impede a repetição cíclica dos IDs das transações.
Vácuo periódico para tabelas. O AlloyDB Omni aciona o autovacuum com base no número de tuplos mortos e nas páginas que precisam de ser analisadas. Remove as tuplas mortas de forma oportuna para evitar o inchaço da tabela ou do índice.
Deteção automática de bloqueadores. O AlloyDB Omni deteta automaticamente bloqueios, como transações de execução prolongada, transações preparadas órfãs, slots de replicação órfãos e mostra mensagens de aviso semelhantes às seguintes no registo
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.
Configure o autovacuum adaptável
Por predefinição, o autovacuum adaptável está ativado no AlloyDB Omni. Pode desativar o autovacuum adaptável definindo a flag da base de dados de uma instância como off
.enable_google_adaptive_autovacuum
O AlloyDB Omni suporta várias flags de base de dados PostgreSQL padrão relacionadas com o vacuum e o autovacuum, por exemplo, vacuum_cost_delay
e autovacuum_vacuum_cost_delay
.
Não precisa de definir valores em nenhuma destas flags para que o autovacuum adaptável funcione, porque o autovacuum adaptável adapta e otimiza o respetivo comportamento às suas cargas de trabalho reais.
Se definir valores nestas flags, o autovacuum adaptativo ajusta o respetivo comportamento
para ter em conta as suas preferências.
Para ver a lista completa de flags da base de dados PostgreSQL suportadas relacionadas com o vacuum e o autovacuum, consulte as flags do vacuum e as flags do autovacuum.