Backup PostgreSQL Grande Porte
Índice
- 1 Backups de Bancos PostgreSQL (Grande Porte)
- 1.1 Objetivos de um bom backup
- 1.2 1. Backup lógico via replicação (pg_dump em réplica)
- 1.3 2. Backup físico da pasta de dados (data directory)
- 1.4 3. Soluções de backup de mercado (ex: Veeam Backup)
- 1.5 4. RAID
- 1.6 Observação importante: backups fora da máquina
- 1.7 Informações adicionais e boas práticas gerais
Backups de Bancos PostgreSQL (Grande Porte)
Este documento descreve estratégias comuns para realizar **backup de bancos de dados PostgreSQL de grande porte**, abordando vantagens, desvantagens e boas práticas. O foco é minimizar impacto em produção, garantir consistência dos dados e facilitar a recuperação em caso de desastre.
---
Objetivos de um bom backup
- Garantir **recuperação de dados** em caso de falha, erro humano ou ataque
- Minimizar **impacto no banco principal (produção)**
- Possibilitar **restauração parcial ou total**
- Manter cópias **fora do servidor de origem**
---
1. Backup lógico via replicação (pg_dump em réplica)
Nesta abordagem, utiliza-se uma **réplica de leitura** (streaming replication) para executar o backup lógico com `pg_dump`, evitando carga adicional no banco principal.
Funcionamento
- Banco primário replica dados continuamente para um ou mais nós secundários
- O `pg_dump` é executado **no banco replicado**
- O backup é gerado em formato lógico (custom format)
Vantagens
- Não impacta significativamente o banco de produção
- Permite backup por banco
- Não exige parada do banco
Desvantagens
- Processo pode ser lento para bancos muito grandes
- Consome CPU, memória e I/O do servidor réplica
- Não preserva estatísticas internas e configurações físicas
- Restauração pode ser demorada
Boas práticas
- Utilizar formato `custom` (`pg_dump -Fc`) para permitir paralelismo na restauração
- Garantir que a réplica esteja sincronizada
- Automatizar via cron ou ferramentas de orquestração
---
2. Backup físico da pasta de dados (data directory)
O backup físico consiste em copiar diretamente o **diretório de dados do PostgreSQL** (`PGDATA`).
Abordagem tradicional
- Parar o serviço PostgreSQL
- Copiar o diretório de dados via script (`rsync`, `tar`, etc.)
- Reiniciar o serviço
Vantagens
- Backup rápido, especialmente para bancos muito grandes
- Preserva estrutura física, índices e estatísticas
- Restauração geralmente mais rápida
Desvantagens
- Necessita **parada do banco** (downtime)
- Risco operacional se scripts não forem bem controlados
- Pouca flexibilidade para restaurações parciais
Alternativas mais seguras
- `pg_basebackup`: permite backup físico **sem parar o banco**
- Uso de WALs para **PITR (Point-In-Time Recovery)**
Boas práticas
- Sempre validar consistência após restore
- Testar restauração regularmente
---
3. Soluções de backup de mercado (ex: Veeam Backup)
Ferramentas comerciais oferecem integração com PostgreSQL e infraestrutura.
Características
- Interface gráfica e gerenciamento centralizado
- Automação de políticas de retenção
- Integração com snapshots de storage e virtualização
Vantagens
- Reduz complexidade operacional
- Suporte técnico através do fornecedor da ferramenta
- Integração com ambientes VMware, Hyper-V e cloud
Desvantagens
- Custo de licenciamento
- Dependência de fornecedor
- Menor controle sobre detalhes internos do backup
Observações
- Verificar se a solução é **application-aware** para PostgreSQL
- Garantir suporte a WAL e restauração consistente
---
4. RAID
RAID **não é backup**, mas pode fazer parte da estratégia de disponibilidade.
O que o RAID oferece
- Redundância de discos
- Proteção contra falha física de hardware
- Melhor desempenho de leitura/escrita (dependendo do nível)
Limitações
- Não protege contra:
** Exclusão acidental de dados ** Corrupção lógica ** Ataques (ex: ransomware)
- Erros são replicados imediatamente
Conclusão
RAID deve ser visto apenas como **camada de alta disponibilidade**, nunca como substituto de backup.
---
Observação importante: backups fora da máquina
Mesmo com backups configurados, é fundamental:
- Manter cópias **fora do servidor de origem**
- Utilizar outro datacenter, storage remoto ou cloud (VRBackup)
- Implementar política de retenção (diário, semanal, mensal)
---
Informações adicionais e boas práticas gerais
- Documentar claramente o processo de backup e restore
- Monitorar falhas de backup
- Testar restores periodicamente (disaster recovery test)
- Utilizar compressão e paralelismo quando possível
Estratégia recomendada
Uma estratégia robusta geralmente combina:
- Replicação + `pg_dump` para restores lógicos
- Backup físico (`pg_basebackup` + WAL) para recuperação rápida
- Cópia externa (offsite)
- RAID para resiliência de hardware
---
Backups só são confiáveis quando a restauração foi testada com sucesso.