Otimizar, monitorizar e resolver problemas de operações VACUUM no PostgreSQL

Este documento descreve os princípios básicos da operação VACUUM nas bases de dados PostgreSQL. Também descreve os mecanismos para monitorizar e ajustar o motor da base de dados que mantém o estado das instâncias da base de dados.

O PostgreSQL usa um protocolo de simultaneidade baseado em instantâneos que cria várias versões de linhas de dados enquanto modifica os dados. Estas versões de linhas de dados são usadas para ler uma versão visível dos dados através de uma captura instantânea calculada sem adquirir o bloqueio de leitura na linha de dados. O PostgreSQL mantém IDs de transações (IDs de transações inseridos e eliminados) para cada linha de dados e usa os IDs de transações juntamente com a imagem instantânea calculada para determinar a visibilidade da linha. À medida que os dados continuam a crescer devido a versões antigas dos dados, o tempo necessário para analisar os dados (análise de tabelas ou análise de índices) aumenta. Para otimizar o tempo de resposta da operação de análise e usar o espaço de forma eficiente, tem de reaver as versões e os metadados (por exemplo, o ID da transação) que são usados para manter as versões.

A operação VACUUM reclama as versões eliminadas (recolha de lixo) e os IDs das transações (congelamento do ID da transação). A operação VACUUM opera em dados em diferentes modos com diferentes níveis de disponibilidade de dados. A imobilização dos IDs das transações é fundamental para o bom funcionamento do sistema de base de dados, uma vez que o sistema bloqueia os autores sempre que o espaço de IDs das transações usado entra no espaço reservado.

As tarefas autovacuum que configurar tentam constantemente reaver o ID da transação, mas podem falhar. Esta falha deve-se a uma configuração insuficiente ou ao facto de a taxa de criação de IDs de transações ser tão elevada que a tarefa autovacuum não consegue acompanhar a carga de trabalho. A finalidade deste documento é mostrar como usar as operações VACUUM juntamente com os mecanismos para ajustar e monitorizar diferentes aspetos das operações VACUUM.

Vista geral

Este documento abrange o seguinte:

  • Congelar IDs de transações.
  • Monitorizar IDs de transações.
  • Recuperar espaço de armazenamento.
  • Configurar alertas automatizados do Cloud Monitoring.

Para ler o relatório técnico completo, clique no botão:

Transfira o PDF