Otimização, monitoramento e solução de problemas de operações VACUUM no PostgreSQL

Este documento descreve os princípios básicos da operação VACUUM nos bancos de dados do PostgreSQL. Ela também descreve os mecanismos para monitorar e ajustar o mecanismo do banco de dados que mantém a integridade das instâncias do banco de dados.

O PostgreSQL usa um protocolo de simultaneidade baseado em snapshots que cria várias versões de linhas de dados durante a modificação de dados. Essas versões da linha de dados são usadas para ler uma versão visível dos dados usando um snapshot computado sem a necessidade de bloquear a leitura na linha de dados. O PostgreSQL mantém os IDs de transação (inseridos e excluídos) para cada linha de dados e os utiliza junto com o snapshot calculado para determinar a visibilidade da linha. Como os dados continuam crescendo devido às versões antigas de dados, o tempo necessário para verificar os dados (verificação de tabelas ou de índice) aumenta. Para otimizar o tempo de resposta da operação de verificação e usar o espaço de maneira eficiente, é preciso recuperar as versões e os metadados (por exemplo, ID da transação) que são usados para manter as versões.

A operação VACUUM recupera as versões excluídas (coleta de lixo) e os IDs de transação (congelar o ID da transação). A operação VACUUM atua em dados de modos diferentes com níveis diferentes de disponibilidade de dados. O congelamento dos IDs de transações é essencial para a integridade do sistema de banco de dados porque que ele bloqueia os gravadores sempre que o espaço do ID de transação usado entra no espaço reservado.

Os jobs autovacuum configurados tentam recuperar constantemente o ID da transação, mas podem falhar. Essa falha ocorre devido à configuração insuficiente ou porque a taxa de criação dos IDs de transação é tão alta que o job autovacuum não consegue acompanhar a carga de trabalho. O objetivo deste documento é mostrar como usar as operações VACUUM com os mecanismos para ajustar e monitorar diferentes aspectos das operações VACUUM.

Visão geral

Este documento abrange o seguinte:

  • Como liberar IDs de transação.
  • Como monitorar IDs de transação.
  • Reivindicação de espaço de armazenamento.
  • Como configurar alertas automatizados do Cloud Monitoring.

Para ler todo o artigo, clique no botão:

Fazer download do PDF