Ir para o conteúdo

6.1. Backup e Restauração no PostgreSQL

Introdução ao Backup e Restauro no PostgreSQL

O backup e a restauração são partes essenciais da administração de bancos de dados, ajudando a garantir a segurança dos dados em caso de falhas do sistema ou outras situações problemáticas. No PostgreSQL, você pode fazer backup e restauração usando os utilitários pg_dump, pg_restore e psql.

Backup com o pg_dump

  1. Backup de todo o banco de dados: Utilize o comando pg_dump para criar um arquivo de backup do banco de dados inteiro. Abra o terminal e execute o seguinte comando:

    pg_dump -h <servidor> -U <usuario> -W -F t <nome_do_banco_de_dados> > <caminho/arquivo_de_backup.tar>
    

    Substitua <servidor> pelo nome ou IP do servidor, <usuario> pelo nome do usuário do PostgreSQL, <nome_do_banco_de_dados> pelo nome do banco de dados que deseja fazer o backup e <caminho/arquivo_de_backup.tar> pelo caminho e nome do arquivo de backup que será gerado. Os parâmetros combinados permitem que o pg_dump crie um arquivo de backup no formato desejado, contendo todas as definições e dados do banco de dados especificado.

Parâmetros do pg_dump

  • -U: Especifica o nome do usuário do banco de dados (também é possível utilizar --username).
  • -W: Força o pedido de senha do usuário para se conectar ao banco de dados (também pode ser utilizado --password).
  • -F: Especifica o formato do arquivo de saída (também pode utilizar --format). Os formatos são:
    • p: Texto simples (SQL)
    • t: Tarball (recomendado para melhor compatibilidade com o pg_restore)
  • >: Símbolo de redirecionamento do Linux que direciona a saída do comando para um arquivo.

Restaurar DB com o pg_restore

  1. Restaurar todo o banco de dados: Utilize o comando pg_restore para restaurar o arquivo de backup para o banco de dados:

    pg_restore -h <servidor> -U <usuario> -W -d <nome_do_banco_de_dados> < <caminho/arquivo_de_backup.tar>
    

    Substitua <servidor> pelo nome ou IP do servidor, <usuario> pelo nome do usuário do PostgreSQL, <nome_do_banco_de_dados> pelo nome do banco de dados de destino e <caminho/arquivo_de_backup.tar> pelo caminho e nome do arquivo de backup físico a ser restaurado.

Parâmetros do pg_restore

  • -U: Especifica o nome do usuário do banco de dados (também é possível utilizar --username).
  • -W: Força o pedido de senha do usuário para se conectar ao banco de dados (também pode ser utilizado --password).
  • -d: Especifica o nome do banco de dados de destino (também pode utilizar --dbname).
  • <: Símbolo de redirecionamento do Linux que direciona o conteúdo do arquivo para a entrada do comando.

Backup e restore com o psql

  1. Backup de todo o banco de dados: Utilize o comando pg_dump para criar um arquivo de backup do banco de dados inteiro com formato SQL:

    pg_dump -h <servidor> -U <usuario> -W -F p <nome_do_banco_de_dados> > <caminho\arquivo_de_backup.sql>
    
  2. Restaurar todo o banco de dados: Utilize o comando psql para restaurar o arquivo de backup SQL para o banco de dados:

    psql -h <servidor> -U <usuario> -W -d <nome_do_banco_de_dados> < <caminho\arquivo_de_backup.sql>
    

    Substitua <servidor> pelo nome ou IP do servidor, <usuario> pelo nome do usuário do PostgreSQL, <nome_do_banco_de_dados> pelo nome do banco de dados de destino e <caminho/arquivo_de_backup.sql> pelo caminho e nome do arquivo de backup físico a ser restaurado.

Parâmetros do psql

  • -U: Especifica o nome do usuário do banco de dados (também é possível utilizar --username).
  • -W: Força o pedido de senha do usuário para se conectar ao banco de dados (também pode ser utilizado --password).
  • -d: Especifica o nome do banco de dados de destino (também pode utilizar --dbname).

Dica

Entender o que cada parâmetro faz é importante, pois permite personalizar os comandos de acordo com suas necessidades e garantir que você tenha o máximo de controle ao fazer backup e restaurar seus bancos de dados. Para saber mais sobre o parâmetros de cada comando, utilize o parâmetro (--help), exemplo:

pg_dump --help

Referências para técnicas avançadas

Este guia foca nas técnicas básicas de backup e restauração usando pg_dump, pg_restore e psql. No entanto, o PostgreSQL oferece outras técnicas avançadas, como backups físicos, backups incrementais e Point-In-Time Recovery (PITR).

Para aprender mais sobre esses métodos e quando usá-los, consulte a documentação oficial do PostgreSQL clicando aqui.

Enquanto isso, este guia simples e prático deve ser suficiente para ajudar iniciantes a começarem a trabalhar com o backup e a restauração no PostgreSQL.

Espero que este guia tenha sido útil para você entender como realizar backup e restauração no PostgreSQL usando os utilitários pg_dump, pg_restore e psql. Lembre-se de fazer backups regularmente para garantir a segurança dos seus dados e estar preparado para possíveis situações de falha.