Atividades de manutenção de bancos de dados PostgreSQL no Amazon RDS e no Amazon Aurora para evitar problemas de performance
Anuradha Chintha, Rajesh Madiwale e Srinivas Potlachervoo, Amazon Web Services (AWS)
Agosto de 2025 (histórico do documento)
A edição do Amazon Aurora compatível com PostgreSQL e o Amazon Relational Database Service (Amazon RDS) para PostgreSQL são serviços de banco de dados relacionais totalmente gerenciados para bancos de dados PostgreSQL. Esses serviços gerenciados liberam o administrador do banco de dados de muitas tarefas de manutenção e gerenciamento. No entanto, algumas tarefas de manutenção, como VACUUM, exigem monitoramento e configuração rigorosos com base no uso do banco de dados. Este guia descreve as atividades de manutenção do PostgreSQL no Amazon RDS e no Aurora.
Resultados de negócios desejados
A performance do banco de dados é uma medida fundamental que sustenta o sucesso de uma empresa. A realização de atividades de manutenção em seus bancos de dados do Aurora compatível com PostgreSQL e do Amazon RDS para PostgreSQL proporciona as seguintes vantagens:
-
Ajuda a alcançar a performance ideal de consulta
-
Libera espaço inchado para reutilização em transações futuras
-
Evita o wraparound da transação
-
Ajuda o otimizador a gerar bons planos
-
Garante o uso adequado do índice
Controle de concorrência multiversão (MVCC)
A manutenção do banco de dados PostgreSQL requer uma compreensão do controle de concorrência multiversão (MVCC), que é um mecanismo do PostgreSQL. Quando várias transações são processadas simultaneamente no banco de dados, o MVCC garante que a atomicidade e o isolamento, que são duas características das transações de atomicidade, consistência, isolamento e durabilidade (ACID), sejam mantidos. No MVCC, cada operação de gravação gera uma nova versão dos dados e armazena a versão anterior. Leitores e gravadores não bloqueiam uns aos outros. Quando uma transação lê dados, o sistema escolhe uma das versões para fornecer isolamento da transação. O PostgreSQL e alguns bancos de dados relacionais usam uma adaptação do MVCC chamada isolamento de snapshot (SI). Por exemplo, o Oracle implementa o SI usando segmentos de reversão. Durante uma operação de gravação, o Oracle grava a versão antiga dos dados em um segmento de reversão e substitui a área de dados pela nova versão. Os bancos de dados PostgreSQL implementam o SI usando regras de verificação de visibilidade para avaliar as versões. Quando novos dados são colocados em uma página de tabela, o PostgreSQL usa essas regras para selecionar a versão apropriada dos dados para uma operação de leitura.
Quando você modifica dados em uma linha da tabela, o PostgreSQL usa o MVCC para manter várias versões da linha. Durante as operações UPDATE e DELETE na tabela, o banco de dados mantém as versões antigas das linhas para outras transações em execução que talvez precisem de uma visão consistente dos dados. Essas versões antigas são chamadas de linhas inativas (tuplas). Uma coleção de tuplas inativas produz inchaço. Um grande volume de inchaço no banco de dados pode causar vários problemas, incluindo geração deficiente de planos de consulta, performance lenta de consultas e maior uso de espaço em disco para armazenar as versões mais antigas.
A remoção do inchaço e a manutenção de um banco de dados íntegro requer manutenção periódica, que inclui essas atividades, que são abordadas nas seguintes seções: