Formatos de Backup no PostgreSQL

O PostgreSQL oferece diferentes formatos de backup para atender às necessidades específicas de cada usuário. Abaixo estão descritos os principais formatos, suas características e os comandos associados:

Custom

  • Extensão: .custom ou .dump
  • Comando: pg_dump -F c
  • Características:
    • Formato binário próprio do PostgreSQL.
    • Permite a compressão do backup, reduzindo o tamanho do arquivo.
    • Suporta backups incrementais.
    • Possibilita a restauração seletiva (como apenas algumas tabelas ou esquemas).
    • Oferece flexibilidade na restauração com o pg_restore, incluindo restauração paralela para maior velocidade.
pg_dump -F c -f backup.custom my_database

Tar

  • Extensão: .tar
  • Comando: pg_dump -F t
  • Características:
    • Formato tar padrão.
    • Permite compressão.
    • Pode ser facilmente examinado ou extraído com ferramentas de arquivamento, como tar.
    • Suporta restaurações seletivas e paralelas com pg_restore.
pg_dump -F t -f backup.tar my_database

Plain

  • Extensão: .sql
  • Comando: pg_dump -F p
  • Características:
    • Arquivo de texto SQL contendo comandos SQL.
    • Não suporta compressão nativa (compressão deve ser aplicada posteriormente, por exemplo, com gzip).
    • Simples e direto, fácil de ler e editar com qualquer editor de texto.
    • Restaurável diretamente com o comando psql, sem necessidade de pg_restore.
pg_dump -F p -f backup.sql my_database

Directory

  • Extensão: Diretório
  • Comando: pg_dump -F d
  • Características:
    • Cria um diretório contendo um conjunto de arquivos representando o backup.
    • Permite backups incrementais e compressão.
    • Suporta restaurações paralelas, aumentando a velocidade.
    • É o formato mais flexível e robusto para grandes bancos de dados, permitindo manipulação granular dos dados.
    • Necessita do uso do pg_restore para restauração.
pg_dump -F d -f backup_dir my_database

Configuração Session

1. Pre-data

Refere-se aos comandos SQL que definem a estrutura do banco de dados antes de carregar os dados reais.

Obs: É a fase inicial que configura a estrutura do banco de dados, garantindo que todas as tabelas, esquemas e outros objetos estejam prontos para receber os dados reais.

pg_dump --section=pre-data -F p -f pre_data.sql my_database

2. Data

Contém os comandos que inserem os dados reais nas tabelas do banco de dados.

Obs: Esta fase carrega os dados efetivos no banco de dados após a estrutura ter sido definida pela fase pre-data.

pg_dump --section=data -F p -f data_only.sql my_database

3. Post-data

Inclui comandos SQL que devem ser executados após o carregamento dos dados, geralmente para restaurar objetos que dependem da existência dos dados.

Obs: Esta fase completa a restauração do banco de dados, adicionando todos os objetos que dependem da presença dos dados. Isso inclui a criação de índices e constraints que garantem a integridade dos dados e melhoram a performance das consultas.

pg_dump --section=post-data -F p -f post_data.sql my_database

Configurações Específicas de Backup

1. Only Data

  • Comando: pg_dump --data-only
  • Descrição: Inclui apenas os dados das tabelas no backup, sem incluir definições de esquema (como criação de tabelas, índices ou outros objetos).
  • Conteúdo:
    • Comandos INSERT ou COPY para inserir dados nas tabelas.
  • Uso Comum:
    • Ú til quando a estrutura do banco de dados (esquemas) já está definida e apenas os dados precisam ser preservados.
    • Usado para atualizar dados em um banco de dados de teste que já possui a estrutura correta.
pg_dump --data-only -F p -f only_data.sql my_database

2. Blobs

  • Comando: pg_dump --blobs
  • Descrição: Inclui os Large Objects (BLOBs) armazenados no banco de dados no backup.
  • Conteúdo:
    • Dados de Large Objects, que são objetos binários armazenados no banco de dados.
    • Estes podem incluir arquivos, imagens, vídeos ou outros dados binários.
  • Uso Comum:
    • Necessário para bancos de dados que utilizam Large Objects e precisam garantir a inclusão destes no backup e na restauração.
pg_dump --blobs -F c -f backup_with_blobs.custom my_database

3. Only Schemas

  • Comando: pg_dump --schema-only
  • Descrição: Inclui apenas a definição dos esquemas (estrutura) do banco de dados no backup, sem incluir os dados.
  • Conteúdo:
    • Comandos CREATE TABLE, CREATE INDEX, CREATE VIEW, CREATE FUNCTION, e outras definições de objetos do banco.
  • Uso Comum:
    • Criar uma estrutura de banco de dados vazia como modelo para outros bancos.
    • Versionar a estrutura do banco de dados, mantendo-a separada dos dados
pg_dump --schema-only -F p -f only_schema.sql my_database

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *