Aqui na nossa empresa de TI, o backup em nuvem do PostgreSQL em um de nossos clientes estava levando 25 horas por dia. Era uma rotina com pg_dump que funcionou por anos, mas com a base de dados dobrando de tamanho, era hora de mudar a estratégia.

Backup PostgreSQL de 25 horas para menos de 3 — sem trocar nada

Mudança de Estratégia

Saiu-se do pg_dump (backup lógico) e foi para pg_basebackup (backup físico do cluster). Em vez de serializar objetos por objeto, ele lê os arquivos físicos do disco de forma sequencial, muito mais eficiente em bases grandes.

Ferramentas Utilizadas

  • pg_basebackup: Para realizar o backup físico do cluster.
  • LZ4: Para compressão, com ZSTD como alternativa.
  • AES-256: Para criptografia.
  • Offsite Nuvem: Para armazenamento.

Resultados

Com a mudança de estratégia, conseguimos reduzir o tempo de backup de 25 horas para 2 horas e 28 minutos, incluindo compressão, criptografia e envio para nuvem.

Comentários e Alternativas

  • Backup com WAL-G: Possibilita um backup granular até minutos de precisão, sem incremento gigantesco no espaço.
  • pgBackRest: Oferece armazenamento e gerenciamento do WAL, além de funcionalidades interessantes para ambientes maiores.
  • Criptografia Simétrica vs Assimétrica: O uso de criptografia assimétrica é preferido por alguns, pois permite que a chave de encriptação seja acessível apenas para o criador.

Conclusão

A otimização do backup PostgreSQL de 25 horas para menos de 3 horas foi possível através de uma mudança de estratégia e a utilização de ferramentas adequadas. Com a crescente demanda por eficiência e segurança, é importante manter-se atualizado com as melhores práticas e tecnologias disponíveis no mercado.

Backup Horas Menos Postgresql Trocar