~ / blog / dados
22 set 2026dados10 min de leitura

PostgreSQL em produção: backup, conexões e o básico que evita dor

Configuração prática de PostgreSQL para produção: conexões, backup com pg_dump/pg_basebackup, vacuum e monitoramento.

PostgreSQLBackupProduçãoDBA

1. Conexões e autenticação

# pg_hba.conf (exemplo seguro)
# TYPE  DATABASE  USER  ADDRESS         METHOD
local   all       all                   peer
host    all       app   10.0.0.0/8      scram-sha-256
hostssl all       all   0.0.0.0/0       reject
# postgresql.conf
max_connections = 100
listen_addresses = 'localhost'   # ou IP interno; nunca 0.0.0.0 sem firewall
DICA · Use um usuário de aplicação com privilégios mínimos (não o superuser).

2. Memória e shared_buffers

# regras de ouro aproximadas (servidor dedicado)
shared_buffers = 25% da RAM
effective_cache_size = 50–75% da RAM
work_mem = 16–64MB (cuidado com concorrência)
maintenance_work_mem = 256MB–1GB

Reinicie o serviço após mudanças em parâmetros que exigem restart.

3. Backup lógico e físico

# Lógico (bom para dumps pontuais)
pg_dump -Fc -f backup_$(date +%F).dump minha_base
pg_restore -d minha_base backup_2026-09-22.dump

# Físico (basebackup — necessário para PITR)
pg_basebackup -D /var/lib/postgresql/backup -Ft -z -P -U replicator

Para produção séria: combine basebackup + WAL archiving (ou use ferramentas como pgBackRest / Barman).

4. Vacuum e manutenção

-- ver tabelas inchadas
SELECT relname, n_dead_tup, last_vacuum, last_autovacuum
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;

VACUUM (VERBOSE, ANALYZE) tabela_grande;
-- ou deixe o autovacuum trabalhar e só ajuste thresholds se necessário

5. O que monitorar

  • Conexões ativas vs max_connections
  • Locks longos e queries lentas (pg_stat_activity)
  • Tamanho do banco e crescimento de WAL
  • Taxa de cache hit (buffer hit ratio)
  • Último backup bem-sucedido

6. Checklist

  • Backup testado (restore real em ambiente separado)
  • pg_hba restritivo + senhas fortes (scram-sha-256)
  • Autovacuum habilitado
  • Logs de erros e slow queries configurados
  • Extensões necessárias documentadas (pg_stat_statements, etc.)

7. Erros comuns

SintomaCausaSolução
too many connectionsmax_connections baixo ou pool ausentePgBouncer ou aumentar com cuidado
Backup nunca testadoSó o dump existeFaça restore periódico em staging
Disco cheio de WALArchive falhandoVerifique archive_command e espaço
Queries lentas de repenteEstatísticas desatualizadasANALYZE ou autovacuum

Quer aplicar isso ao seu contexto?

Se esse problema existe na sua operação, podemos analisar o cenário em um diagnóstico gratuito de 30 minutos.

solicitar diagnóstico gratuito →

Leia também