CodeGym /Cursos /SQL SELF /Tipos de backup no PostgreSQL: completo, incremental, dif...

Tipos de backup no PostgreSQL: completo, incremental, diferencial

SQL SELF
Nível 43 , Lição 1
Disponível

Tipos de backup no PostgreSQL: completo, incremental, diferencial

Imagina que seu banco de dados é tipo um mega arquivo de biblioteca com milhares de livros. Backup completo é como mandar um motoboy toda noite pra copiar todos os livros. Mas e se quase nada mudou? Isso não só é lento, mas também pesa no transporte e ocupa muito espaço. É aí que entram os backups incrementais e diferenciais. A gente trabalha de forma mais esperta, copiando só o que realmente mudou.

Hoje vamos ver esses tipos de backup:

  • Backup completo: cópia total do banco de dados.
  • Backup incremental: copia só as mudanças desde o último backup.
  • Backup diferencial: copia as mudanças desde o último backup completo.

Cada um desses jeitos tem seus prós, contras e usos. Bora entender melhor.

Backup completo

Backup completo (ou Full Backup) é uma cópia de segurança de todo o banco de dados em um momento específico. Ele guarda tanto a estrutura do banco (tabelas, índices, schemas) quanto todos os dados. Resumindo, é um "snapshot" de tudo.

Exemplo de comando pra backup completo:

pg_dump -U username -d database_name -F c -f full_backup.dump

Aqui:

  • -U username — nome do usuário do PostgreSQL.
  • -d database_name — nome do banco de dados.
  • -F c — formato do backup (custom, bom pra restaurar com pg_restore).
  • -f full_backup.dump — nome do arquivo onde vai ficar o backup.

Mais detalhes sobre o comando pg_dump e seus parâmetros você vai ver nas próximas aulas :P

Vantagens do backup completo:

  1. Fácil de restaurar. Se der ruim, o backup completo te salva rapidinho restaurando tudo.
  2. Snapshot total dos dados. Dá pra usar pra migrar o banco pra outro servidor ou ambiente.

Desvantagens do backup completo:

  1. Tamanho dos dados: backup completo pode ficar gigante, principalmente se você tem muito dado.
  2. Demora pra rodar: quanto mais dados, mais tempo pra fazer a cópia.
  3. Espaço de armazenamento: cada backup completo ocupa espaço separado, pode acabar com o storage rapidinho.

Quando usar backup completo:

  • Na hora de fazer o primeiro backup.
  • Antes de fazer mudanças grandes no banco.
  • Pra arquivar por muito tempo (faz o backup completo e manda pro "freezer").

Backups incrementais

Backup incremental (Incremental Backup) salva só os arquivos que mudaram desde o último backup — seja ele completo ou incremental. Isso economiza espaço em disco e acelera o processo de backup.

No PostgreSQL, backups incrementais podem ser feitos com a ferramenta pgBackRest — uma utilidade poderosa pra criar e gerenciar backups do PostgreSQL, suportando estratégias completas, incrementais e diferenciais.

Como funciona o pgBackRest?

  • pgBackRest usa metadados e checksums dos arquivos pra ver o que mudou.
  • os arquivos realmente alterados entram no backup incremental.
  • Tem suporte pra arquivamento automático dos arquivos WAL, então dá pra restaurar até um ponto exato no tempo.

Exemplo de comando pra backup incremental:

pgbackrest --stanza=main --type=incr backup

Onde:

  • --stanza=main — nome da configuração (conjunto de parâmetros pra um banco específico).
  • --type=incr — indica que é backup incremental.

Antes do primeiro backup incremental, tem que fazer um completo (--type=full).

Vantagens dos incrementais com pgBackRest:

  1. Economia de espaço: só copia arquivos alterados.
  2. Rápido pra rodar: principalmente se mudou pouca coisa.
  3. Gerenciamento automático de WAL: o pgBackRest cuida do arquivamento e aplicação dos arquivos WAL.
  4. Flexibilidade na restauração: dá pra escolher o ponto de restauração (PITR).

Desvantagens e detalhes:

  1. Precisa configurar antes: tem que setar o stanza, diretório do repositório, permissões, etc.
  2. Pode ser complicado pra quem tá começando: precisa entender WAL e a arquitetura do PostgreSQL.
  3. Depende do repositório: todos os backups ficam centralizados — tem que cuidar bem do storage.

Quando usar backups incrementais:

  • Se o banco de dados muda bastante.
  • Quando o backup completo fica pesado ou demora demais.
  • Se você quer uma estratégia de restauração confiável e automática gastando pouco recurso.

Backups diferenciais

Backup diferencial (Differential Backup) salva todas as mudanças que rolaram desde o último backup completo. A diferença pro incremental é que cada backup diferencial tem o pacote completo de mudanças desde o último completo. Então, pra restaurar, só precisa do último backup completo e do último diferencial.

Exemplo do processo:

  1. Primeira noite: faz backup completo (A).
  2. Segunda noite (B): faz backup diferencial — guarda mudanças desde A.
  3. Terceira noite (C): faz backup diferencial — também guarda mudanças desde A.

Vantagens:

  1. Fácil de restaurar: Pra restaurar, só precisa do backup completo e do último diferencial.
  2. Mais rápido que completo: Backup diferencial é mais rápido que completo, porque só copia as mudanças.

Desvantagens:

  1. Tamanho do arquivo de backup: Cada novo backup diferencial vai ficando maior, já que guarda todas as mudanças desde o completo.
  2. Espaço em disco: No longo prazo, pode precisar de mais espaço do que os incrementais.

Backup diferencial é útil quando você quer facilitar a restauração: ele guarda tudo que mudou desde o último backup completo. Isso é ótimo se os dados mudam bastante, mas fazer backup completo toda hora é pesado demais. Nessas situações, o diferencial é um bom meio-termo entre velocidade e segurança.

Comparando os tipos de backup

Tipo de backup Completo Incremental Diferencial
Tamanho dos dados Máximo Mínimo Médio
Tempo pra rodar Lento Rápido Moderado
Restauração Fácil Complicada (depende de todos os backups) Média (precisa do último completo e diferencial)
Quando usar Primeira cópia, migrações Backups frequentes em tempo real Backup regular

A escolha do tipo de backup depende do quanto você precisa de segurança, da frequência das mudanças e dos recursos disponíveis. Pra bancos pequenos, backup completo regular resolve. Se o banco cresce, os incrementais ajudam a economizar espaço. E se você quer restaurar rapidinho, os diferenciais podem ser a melhor opção. O mais importante é não esquecer de fazer backup sempre e automatizar o processo!

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION