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_dumpcria um arquivo de texto SQL contendo DDL e dados necessários para recriar a tabela ou banco de dados alvo.pg_dumpallfaz 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,ALTEReCOPYdependendo 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_dumpgera 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 TABLENAMEpara exportar uma tabela específica. Se tabelas com o mesmo nome existirem em diferentes esquemas, use--schemapara 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_dumpallfaz 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 TABLEALTER TABLECOPY(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.sqlIsso 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.
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.
Como fazer backup do banco de dados Postgres:
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 | A tabela não deve existir previamente | Erros de “já existe” |
Banco de dados único | psql | Dump do banco de dados | O BD de destino deve existir | Substituindo dados não intencionais |
Todos os bancos de dados | psql | Dump completo | Acesso de superusuário recomendado | Restaurando mais do que o pretendido |
Restaure uma tabela do Postgres :
$ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql peO 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.
Restaure um banco de dados postgres :
$ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sqlSemelhante à 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.
Restaure todos os bancos de dados :
$ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sqlRestaure 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.



