Backups Lógicos rápidos? pg_dump e pg_restore com Paralelismo no PostgreSQL

Backups Lógicos rápidos? pg_dump e pg_restore com Paralelismo no PostgreSQL

Quando o volume de dados cresce, backup e restauração com pg_dump/pg_restore podem rapidamente se tornar um gargalo crítico. É aqui que o paralelismo faz toda a diferença: em vez de processar tabelas e índices em sequência, o PostgreSQL permite que essas operações sejam divididas em múltiplos processos simultâneos. O resultado? Redução de horas para minutos em muitos cenários — contanto que você escolha o formato correto e ajuste o número de jobs ao seu ambiente.

O Essencial em 10 Segundos:

  • Dump paralelo só funciona com formato directory (-Fd) no pg_dump usando -j N. 
  • O pg_restore paralelo só funciona com formatos custom (-Fc) e directory (-Fd) usando -j N.
  • plain (.sql) e tar (-Ft) não suportam paralelismo.

 E Porque paralelizar o pg_dump/pg_restore?

  • Menos tempo de janela – Divide o trabalho entre múltiplos processos;
  • Melhor uso de CPU/IO – Aproveita CPUs multi-core e storage rápido;
  • Restaurações massivas mais previsíveis – Criação de índices e inserção dados processados em várias filas possibilitando maior ganho de tempo;

Como usar na prática

Dump paralelo (requer -Fd):

 pg_dump -h HOST -U USER -d DBNAME -Fd -j 8 -f /backups/dbname_dir

Restore paralelo (com -Fc ou -Fd):

pg_restore -h HOST -U USER -d DBNEW -j 8 -Fd /backups/dbname_dir pg_restore -h HOST -U USER -d DBNEW -j 8 -Fc /backups/dbname.dump

Onde o Ganho é Maior

  • Em tabelas de tamanho médio;
  • Índices sendo criados simultâneamente;
  • Quando utilizado em storage rápido (NVMe/SSD/RAID);
  • Quando utilizado em rede veloz entre origem e destino.;

Onde o Ganho é Menor

  • Apenas uma tabela gigante pois os jobs são divididos por objeto;
  • Storage lento ou saturado;
  • Servidor de origem já no limite;

Boas Práticas de Desempenho Para o pg_dump

  • Use sempre -Fd -j;
  • Aplique filtros com –table ou –schema;
  • No PG15+, compressão moderada (–compress=3);

Boas Práticas de Desempenho Para o pg_restore

  • Ajuste -j ao nº de vCPUs;
  • Aumente maintenance_work_mem no destino temporariamente (aumenta a velocidade de criação de índices);
  • Ajuste synchronous_commit e max_wal_size temporariamente;

Conclusão

Se o objetivo é reduzir tempo de recuperação use pg_dump -Fd -j N para capturar rapidamente. – Use pg_restore -j N a partir de -Fd ou -Fc. Com o formato certo e o -j bem calibrado, o paralelismo é o caminho mais simples para backups lógicos e restores muito mais rápidos no PostgreSQL.


Quer conhecer mais sobre o PostgreSQL?

Acesse plataforma de cursos da 4Linux e veja nosso treinamento de banco de dados focado em PostgreSQL. Ele aborda diversos temas focado nas melhores práticas desde instalação, backup, replicação e alta disponibilidade.

Anterior Compartilhando conhecimento em IA - IA não corrige bagunça, ela só acelera o estrago!
Próxima KubeDiagrams - Como gerar diagramas das suas arquiteturas Kubernetes

About author

Almeida Robson
Almeida Robson 4 posts

Administrador de Bancos de Dados com foco em PostgreSQL, Pai, amante da música, games e tecnologia.

View all posts by this author →

Você pode gostar também