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: