Gerador de Comando pg_dump
Monta um comando pg_dump com host, usuário, banco, formato (custom, plain, tar, dir) e arquivo.
pg_dump em profundidade: formatos, dump paralelo e estratégia de restore
O pg_dump é o utilitário de backup lógico do PostgreSQL. Diferente do base backup binário, ele captura uma representação SQL consistente de uma base — schema, dados, índices, constraints, sequences, donos, privilégios — que qualquer servidor PostgreSQL compatível consegue replicar. A forma geral é pg_dump [opções] db_name > out.sql. Internamente ele usa uma transação REPEATABLE READ longa, então leituras e escritas concorrentes não ficam bloqueadas; o snapshot é consistente no instante em que o dump começa.
Formatos de saída: escolha com cuidado
A flag -F escolhe um de quatro formatos e a decisão tem consequências reais:
-F p plain SQL texto, grande, restore via psql.
-F c custom binário comprimido, permite restore
paralelo e seletivo. RECOMENDADO.
-F d directory dump paralelizável (-j) E restore paralelo;
um arquivo por relação. Melhor para DB grande.
-F t tar tar do formato directory; uso menos comum.
Use -F c para praticamente todo backup. Comprime, permite restore seletivo via pg_restore -t tabela e o pg_restore paraleliza o load de dados. Use -F d -j 4 quando precisa de dump paralelo em base grande.
Flags de conexão e seleção
-h host,-p porta,-U user,-W(pede senha),-d dbname.-f arquivo— saída em arquivo (omita para gravar em stdout e usar em pipe).--schema-only/-s— só DDL.--data-only/-a— só dados (INSERT/COPY).--clean+--if-exists— emiteDROP IF EXISTSantes de cadaCREATE.--no-owner— remove declarações de ownership (útil para restore com role diferente).--no-privileges— remove GRANTs.-t schema.tabela— dumpa só tabelas específicas (repetível, aceita padrões).-n schema— só um schema;--exclude-schema,--exclude-tablepara o inverso.-j JOBS— workers paralelos (só com-F d).--compress=9— nível de compressão (formatos custom/directory).--encoding=UTF8— encoding explícito do cliente.
Restore: pg_restore vs psql
O comando de restore depende do formato do dump:
# Formato custom ou directory -> pg_restore
pg_restore -d mydb -j 4 backup.dump
pg_restore -d mydb -t users backup.dump # só uma tabela
pg_restore -l backup.dump > toc.list # listar objetos
pg_restore -L toc.list -d mydb backup.dump # restore seletivo
# SQL puro -> psql
psql -d mydb -f backup.sql
psql -d mydb < backup.sql
# Dump do cluster inteiro (roles, tablespaces, todos os DBs)
pg_dumpall > cluster.sql
psql -f cluster.sql postgres
O pg_dumpall é o superset: roles, tablespaces, configuração de replicação e cada banco. Use em migrações no nível do cluster; para backup rotineiro de uma base de aplicação prefira pg_dump -F c.
Exemplos comentados
# Backup diário no formato custom comprimido
pg_dump -h db.prod -U backup -F c -f /backups/mydb-$(date +%F).dump mydb
# Dump paralelo em diretório (4 workers) de base de 100 GB
pg_dump -h db.prod -U backup -F d -j 4 -f /backups/mydb.d mydb
# Só schema, pronto para subir um ambiente de staging
pg_dump --schema-only --no-owner --no-privileges mydb > schema.sql
# Stream para S3 sem arquivo local
pg_dump -F c mydb | aws s3 cp - s3://backups/mydb.dump
# Restore paralelo com 4 workers, derrubando objetos antes
pg_restore --clean --if-exists -d mydb -j 4 backup.dump
Lógico vs físico, compatibilidade de versão, ecossistema
Backup lógico (pg_dump) é portável entre versões e arquiteturas, ideal para migrações e restores seletivos. Backup físico (pg_basebackup, pgBackRest, WAL-G) copia os arquivos de dados e o WAL — muito mais rápido em bases gigantes e a única opção prática na casa dos TB, mas o restore precisa rodar na mesma versão major e arquitetura.
Regra de versão: o pg_dump pode mirar um servidor mais antigo (ele sabe como consultar de forma forward-compatible), mas o cliente deve ser maior ou igual ao servidor na dúvida — sempre rode um pg_dump pelo menos tão novo quanto o servidor. A ordem do restore também importa: dumpar com pg_dump 16 e restaurar com pg_restore 14 pode falhar. Ferramentas profissionais: pgBackRest (incremental, paralelo, restore completo em minutos), Barman, WAL-G (archiving contínuo e PITR para S3/GCS). Serviços gerenciados: AWS RDS PostgreSQL com snapshots automáticos, GCP Cloud SQL com export, Azure Database for PostgreSQL com backups.
FAQ
O dump é hot backup? Sim. O pg_dump abre um snapshot REPEATABLE READ; transações concorrentes não são afetadas e o dump enxerga uma visão consistente do instante em que o snapshot foi tirado.
Como dumpar só um schema? pg_dump -n nome_do_schema -F c mydb > schema.dump. Use -N para excluir schemas (em scripts é comum -N pg_temp_*).
Dá para paralelizar o dump? Sim — mas só com o formato directory: pg_dump -F d -j 4 -f mydb.d mydb. Os formatos plain e custom são escritos por um único worker. O pg_restore consegue paralelizar o load de dumps custom e directory via -j N.
O formato custom já comprime? Sim — por padrão zlib nível 6. Suba para --compress=9 em redes lentas. Não precisa empilhar gzip em cima.
O pg_restore segue depois de um erro? Por padrão sim e loga a falha; passe --exit-on-error para parar no primeiro erro. Combine com --single-transaction para envolver todo o restore em uma única tx (mais lento, semântica tudo-ou-nada).
Ferramentas Relacionadas
Gerador de Manuscrito
Converte texto digitado em uma imagem com aparência de letra manuscrita. Útil para tornar trabalhos digitais mais pessoais.
Gerador de Currículo
Preenche um currículo simples (CV) imprimível em A4 a partir de formulário com dados pessoais, formação e experiência.
Gerador de Favicon
Gera favicon a partir de texto/emoji em todos os tamanhos comuns (16, 32, 48, 64, 192, 512). Download como PNG.