Dicas de Tecnologia: Como faço para Fazer Backup e Restaurar o Banco de Dados Postgres?

Karan Singh

19 de jun. de 2013

Email

1 min read

Dicas de Tecnologia: Como faço para Fazer Backup e Restaurar o Banco de Dados Postgres?

Principais Conclusões

    • Os backups do PostgreSQL podem direcionar uma única tabela, um único banco de dados ou todos os bancos de dados dependendo das suas necessidades.

    • pg_dump cria um arquivo de texto SQL contendo DDL e dados necessários para recriar a tabela ou banco de dados alvo.

    • pg_dumpall faz backup de todos os bancos de dados na instância do Postgres.

    • A restauração é feita com psql, que executa o dump SQL de volta no banco de dados alvo.

    • Restaurar a nível de tabela requer garantir que a tabela não exista para evitar conflitos.

    • Ao fazer backup de tabelas individuais, tenha em mente dependências relacionais.

    • Os dumps podem ser feitos de locais e restaurados em instâncias de Postgres remotas.

    • Os backups incluem comandos CREATE, ALTER e COPY dependendo do que está sendo exportado.

    • Uma estratégia de backup adequada depende de entender relações de tabela, uso de esquemas e ambientes de implantação.

    • Sempre assegure a integridade dos dados realizando backups que incluam tabelas referenciadas quando necessário.

Destaques de Perguntas e Respostas

  • O que o pg_dump realmente faz?

    pg_dump gera um arquivo SQL baseado em texto contendo o conjunto completo de comandos necessários para recriar uma tabela ou banco de dados exatamente como existia no momento do backup.

  • Posso fazer backup de apenas uma tabela em vez de um banco de dados completo?

    Sim. Use pg_dump --table TABLENAME para exportar uma tabela específica. Se tabelas com o mesmo nome existirem em diferentes esquemas, use --schema para especificar o correto.

  • Devo me preocupar com tabelas relacionadas ao fazer backup de uma única tabela?

    Absolutamente. PostgreSQL é relacional, então outras tabelas podem fazer referência àquela que você está fazendo backup. Se você restaurar apenas uma tabela sem as relacionadas, pode comprometer a integridade referencial.

  • Como faço para fazer backup de um banco de dados completo?

    Executar um comando como:

    pg_dump -U <user> <database> -f <output.sql>

    Isso exporta todas as tabelas, definições de esquema, índices e dados para esse banco de dados.

  • O que o pg_dumpall faz?

    pg_dumpall faz backup de todas as bases de dados no servidor em um único arquivo SQL. É útil ao migrar ou tirar um instantâneo de uma instância inteira do Postgres.

  • Posso restaurar uma tabela em um banco de dados existente?

    Sim. Use psql -U <user> -f <file.sql> <database>.

    Mas garanta que a tabela não exista ainda — caso contrário, você receberá erros de “já existe” durante a restauração.

  • O que acontece durante uma restauração completa do banco de dados?

    O arquivo de restauração executa:

    • CREATE TABLE

    • ALTER TABLE

    • COPY (para dados da tabela)
      trazendo o banco de dados de volta ao seu estado exato no momento do despejo.

  • Posso restaurar para um servidor diferente daquele de onde fiz o backup?

    Sim. Dumps são portáteis. Você pode fazer um backup localmente e restaurá-lo em uma instância remota do Postgres, desde que as versões sejam compatíveis.

  • O pg_dump afeta o banco de dados em execução?

    Não. Funciona por meio de consultas SQL e não trava o banco de dados inteiro. Ele captura com segurança uma instantânea consistente.

  • Como faço para restaurar todos os bancos de dados a partir de um arquivo pg_dumpall?

    Use:

    psql -U <usuário> -f all_dump.sql

    Isso recria cada banco de dados encontrado no dump.

Primeiro, um aviso. Este post fornece um guia geral sobre como fazer backup de uma Tabela de Banco de Dados Postgres. Os exemplos fornecidos não se referem a nenhuma tabela ou banco de dados específico. Se você estiver tentando fazer backup de uma tabela específica, também deverá fazer backup das tabelas que se referem às tabelas originais. Como Postgres é um banco de dados relacional, sempre haverá referências entre várias tabelas.

Este é um documento ‘como fazer’ que apenas dá comandos de exemplo; como realmente é feito depende exclusivamente da pessoa que o está realizando e dos casos de uso específicos. Sempre mantenha a integridade dos dados que você está tentando fazer backup. Fazer backup de todo o banco de dados é sempre uma opção segura, mas ao fazer backup de tabelas específicas, deve-se ter cuidado.

Primeiro, um aviso. Este post fornece um guia geral sobre como fazer backup de uma Tabela de Banco de Dados Postgres. Os exemplos fornecidos não se referem a nenhuma tabela ou banco de dados específico. Se você estiver tentando fazer backup de uma tabela específica, também deverá fazer backup das tabelas que se referem às tabelas originais. Como Postgres é um banco de dados relacional, sempre haverá referências entre várias tabelas.

Este é um documento ‘como fazer’ que apenas dá comandos de exemplo; como realmente é feito depende exclusivamente da pessoa que o está realizando e dos casos de uso específicos. Sempre mantenha a integridade dos dados que você está tentando fazer backup. Fazer backup de todo o banco de dados é sempre uma opção segura, mas ao fazer backup de tabelas específicas, deve-se ter cuidado.

Primeiro, um aviso. Este post fornece um guia geral sobre como fazer backup de uma Tabela de Banco de Dados Postgres. Os exemplos fornecidos não se referem a nenhuma tabela ou banco de dados específico. Se você estiver tentando fazer backup de uma tabela específica, também deverá fazer backup das tabelas que se referem às tabelas originais. Como Postgres é um banco de dados relacional, sempre haverá referências entre várias tabelas.

Este é um documento ‘como fazer’ que apenas dá comandos de exemplo; como realmente é feito depende exclusivamente da pessoa que o está realizando e dos casos de uso específicos. Sempre mantenha a integridade dos dados que você está tentando fazer backup. Fazer backup de todo o banco de dados é sempre uma opção segura, mas ao fazer backup de tabelas específicas, deve-se ter cuidado.

SQL-dump/pg_dump:

A ideia por trás do método de SQL-dump é gerar um arquivo de texto com comandos SQL que, quando enviados de volta ao servidor, recriarão o banco de dados no mesmo estado em que estava no momento do dump. O PostgreSQL fornece o programa utilitário pg_dump para este fim.

pg_dump é uma ferramenta eficaz e abrangente para fazer backups de bancos de dados Postgres e usar os backups para restaurar o banco de dados Postgres. No entanto, não está restrito apenas ao banco de dados. Podemos usar pg_dump para fazer backup de tabelas e depois usar isso para restaurar tabelas individuais também. Usando pg_dump, você pode fazer backup do banco de dados local e restaurá-lo em um banco de dados remoto.

A ideia por trás do método de SQL-dump é gerar um arquivo de texto com comandos SQL que, quando enviados de volta ao servidor, recriarão o banco de dados no mesmo estado em que estava no momento do dump. O PostgreSQL fornece o programa utilitário pg_dump para este fim.

pg_dump é uma ferramenta eficaz e abrangente para fazer backups de bancos de dados Postgres e usar os backups para restaurar o banco de dados Postgres. No entanto, não está restrito apenas ao banco de dados. Podemos usar pg_dump para fazer backup de tabelas e depois usar isso para restaurar tabelas individuais também. Usando pg_dump, você pode fazer backup do banco de dados local e restaurá-lo em um banco de dados remoto.

A ideia por trás do método de SQL-dump é gerar um arquivo de texto com comandos SQL que, quando enviados de volta ao servidor, recriarão o banco de dados no mesmo estado em que estava no momento do dump. O PostgreSQL fornece o programa utilitário pg_dump para este fim.

pg_dump é uma ferramenta eficaz e abrangente para fazer backups de bancos de dados Postgres e usar os backups para restaurar o banco de dados Postgres. No entanto, não está restrito apenas ao banco de dados. Podemos usar pg_dump para fazer backup de tabelas e depois usar isso para restaurar tabelas individuais também. Usando pg_dump, você pode fazer backup do banco de dados local e restaurá-lo em um banco de dados remoto.

Como fazer backup do banco de dados Postgres:

Visão Geral das Opções de Backup do Postgres

Escopo do backup

Ferramenta usada

Arquivo de saída

O que inclui

Quando usar

Uma tabela

pg_dump

.sql

DDL da tabela + dados

Recuperação ou migração de tabela isolada

Um banco de dados

pg_dump

.sql

Todas as tabelas, esquema, dados

Backup completo do banco de dados

Todos os bancos de dados

pg_dumpall

.sql

Todo banco de dados na instância

Backup ou migração em todo o servidor


Backup de uma Tabela Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

O comando acima é um exemplo de como fazer backup de uma tabela específica de um banco de dados Postgres. Usando o comando acima, estamos fazendo backup da tabela ‘orgs’ no esquema ‘maincontrol’  do banco de dados ‘pe’ para o arquivo ms_table.sql. Para fazer backup de uma tabela específica, use a opção –table TABLENAME no comando pg_dump. Se houver nomes de tabelas iguais em esquemas diferentes, use a opção –schema SCHEMANAME.

  1. Backup de um banco de dados Postgres específico :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este é um exemplo de backup de um banco de dados Postgres específico. Usando o comando acima, estamos fazendo backup do banco de dados para o Message Central ‘pe’ para o arquivo pe_dump.sql. O arquivo de backup contém comandos de criação de tabela, alteração de tabela e cópia para todas as tabelas no banco de dados ‘pe’.

  2. Backup de todos os bancos de dados Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Você pode fazer backup de todos os bancos de dados usando o comando pg_dumpall. O comando acima irá criar um dump de todos os bancos de dados que residem na instância do Postgres executando em um determinado servidor. Para listar todos os bancos de dados que foram feitos backup, use o comando grep “^[\]connect” all.sql.

Visão Geral das Opções de Backup do Postgres

Escopo do backup

Ferramenta usada

Arquivo de saída

O que inclui

Quando usar

Uma tabela

pg_dump

.sql

DDL da tabela + dados

Recuperação ou migração de tabela isolada

Um banco de dados

pg_dump

.sql

Todas as tabelas, esquema, dados

Backup completo do banco de dados

Todos os bancos de dados

pg_dumpall

.sql

Todo banco de dados na instância

Backup ou migração em todo o servidor


Backup de uma Tabela Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

O comando acima é um exemplo de como fazer backup de uma tabela específica de um banco de dados Postgres. Usando o comando acima, estamos fazendo backup da tabela ‘orgs’ no esquema ‘maincontrol’  do banco de dados ‘pe’ para o arquivo ms_table.sql. Para fazer backup de uma tabela específica, use a opção –table TABLENAME no comando pg_dump. Se houver nomes de tabelas iguais em esquemas diferentes, use a opção –schema SCHEMANAME.

  1. Backup de um banco de dados Postgres específico :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este é um exemplo de backup de um banco de dados Postgres específico. Usando o comando acima, estamos fazendo backup do banco de dados para o Message Central ‘pe’ para o arquivo pe_dump.sql. O arquivo de backup contém comandos de criação de tabela, alteração de tabela e cópia para todas as tabelas no banco de dados ‘pe’.

  2. Backup de todos os bancos de dados Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Você pode fazer backup de todos os bancos de dados usando o comando pg_dumpall. O comando acima irá criar um dump de todos os bancos de dados que residem na instância do Postgres executando em um determinado servidor. Para listar todos os bancos de dados que foram feitos backup, use o comando grep “^[\]connect” all.sql.

Visão Geral das Opções de Backup do Postgres

Escopo do backup

Ferramenta usada

Arquivo de saída

O que inclui

Quando usar

Uma tabela

pg_dump

.sql

DDL da tabela + dados

Recuperação ou migração de tabela isolada

Um banco de dados

pg_dump

.sql

Todas as tabelas, esquema, dados

Backup completo do banco de dados

Todos os bancos de dados

pg_dumpall

.sql

Todo banco de dados na instância

Backup ou migração em todo o servidor


Backup de uma Tabela Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

O comando acima é um exemplo de como fazer backup de uma tabela específica de um banco de dados Postgres. Usando o comando acima, estamos fazendo backup da tabela ‘orgs’ no esquema ‘maincontrol’  do banco de dados ‘pe’ para o arquivo ms_table.sql. Para fazer backup de uma tabela específica, use a opção –table TABLENAME no comando pg_dump. Se houver nomes de tabelas iguais em esquemas diferentes, use a opção –schema SCHEMANAME.

  1. Backup de um banco de dados Postgres específico :

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este é um exemplo de backup de um banco de dados Postgres específico. Usando o comando acima, estamos fazendo backup do banco de dados para o Message Central ‘pe’ para o arquivo pe_dump.sql. O arquivo de backup contém comandos de criação de tabela, alteração de tabela e cópia para todas as tabelas no banco de dados ‘pe’.

  2. Backup de todos os bancos de dados Postgres :

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Você pode fazer backup de todos os bancos de dados usando o comando pg_dumpall. O comando acima irá criar um dump de todos os bancos de dados que residem na instância do Postgres executando em um determinado servidor. Para listar todos os bancos de dados que foram feitos backup, use o comando grep “^[\]connect” all.sql.

Como Restaurar o Banco de Dados Postgres

Visão Geral das Opções de Restauração do Postgres

Escopo da restauração

Ferramenta utilizada

Arquivo de entrada

Requisito chave

Armadilha comum

Tabela única

psql

Dump da tabela .sql

A tabela não deve existir previamente

Erros de “já existe”

Banco de dados único

psql

Dump do banco de dados .sql

O BD de destino deve existir

Substituindo dados não intencionais

Todos os bancos de dados

psql

Dump completo .sql

Acesso de superusuário recomendado

Restaurando mais do que o pretendido


  1. Restaure uma tabela do Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    O comando acima irá instalar a tabela que foi copiada para o arquivo ms_table.sql no banco de dados ‘pe’. Certifique-se de que esta tabela não exista previamente, ou você verá vários erros de ‘já existe’. Este comando cria a tabela e exporta todos os dados para a tabela recém-criada.

  2. Restaure um banco de dados postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Semelhante à restauração da tabela, podemos usar o comando acima para restaurar o banco de dados completo. Aqui estamos restaurando o banco de dados ‘pe’ usando o arquivo pe_dump.sql que criamos ao fazer backup do banco de dados na seção de Backup acima.

  3. Restaure todos os bancos de dados :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todos os bancos de dados usando o comando acima. ‘all_dump.sql’ foi o arquivo criado usando pg_dumpall. O comando acima nos dará todos os bancos de dados Postgres no exato estado em que estavam quando um dump foi realizado no servidor de banco de dados original.

Visão Geral das Opções de Restauração do Postgres

Escopo da restauração

Ferramenta utilizada

Arquivo de entrada

Requisito chave

Armadilha comum

Tabela única

psql

Dump da tabela .sql

A tabela não deve existir previamente

Erros de “já existe”

Banco de dados único

psql

Dump do banco de dados .sql

O BD de destino deve existir

Substituindo dados não intencionais

Todos os bancos de dados

psql

Dump completo .sql

Acesso de superusuário recomendado

Restaurando mais do que o pretendido


  1. Restaure uma tabela do Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    O comando acima irá instalar a tabela que foi copiada para o arquivo ms_table.sql no banco de dados ‘pe’. Certifique-se de que esta tabela não exista previamente, ou você verá vários erros de ‘já existe’. Este comando cria a tabela e exporta todos os dados para a tabela recém-criada.

  2. Restaure um banco de dados postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Semelhante à restauração da tabela, podemos usar o comando acima para restaurar o banco de dados completo. Aqui estamos restaurando o banco de dados ‘pe’ usando o arquivo pe_dump.sql que criamos ao fazer backup do banco de dados na seção de Backup acima.

  3. Restaure todos os bancos de dados :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todos os bancos de dados usando o comando acima. ‘all_dump.sql’ foi o arquivo criado usando pg_dumpall. O comando acima nos dará todos os bancos de dados Postgres no exato estado em que estavam quando um dump foi realizado no servidor de banco de dados original.

Visão Geral das Opções de Restauração do Postgres

Escopo da restauração

Ferramenta utilizada

Arquivo de entrada

Requisito chave

Armadilha comum

Tabela única

psql

Dump da tabela .sql

A tabela não deve existir previamente

Erros de “já existe”

Banco de dados único

psql

Dump do banco de dados .sql

O BD de destino deve existir

Substituindo dados não intencionais

Todos os bancos de dados

psql

Dump completo .sql

Acesso de superusuário recomendado

Restaurando mais do que o pretendido


  1. Restaure uma tabela do Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    O comando acima irá instalar a tabela que foi copiada para o arquivo ms_table.sql no banco de dados ‘pe’. Certifique-se de que esta tabela não exista previamente, ou você verá vários erros de ‘já existe’. Este comando cria a tabela e exporta todos os dados para a tabela recém-criada.

  2. Restaure um banco de dados postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Semelhante à restauração da tabela, podemos usar o comando acima para restaurar o banco de dados completo. Aqui estamos restaurando o banco de dados ‘pe’ usando o arquivo pe_dump.sql que criamos ao fazer backup do banco de dados na seção de Backup acima.

  3. Restaure todos os bancos de dados :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todos os bancos de dados usando o comando acima. ‘all_dump.sql’ foi o arquivo criado usando pg_dumpall. O comando acima nos dará todos os bancos de dados Postgres no exato estado em que estavam quando um dump foi realizado no servidor de banco de dados original.

Outras notícias

Leia mais desta categoria

A person is standing at a desk while typing on a laptop.

A plataforma completa nativa de IA que escalará com o seu negócio.

© 2026 Pássaro

A person is standing at a desk while typing on a laptop.

A plataforma completa nativa de IA que escalará com o seu negócio.

© 2026 Pássaro