PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Restaurar um arquivo de backup postgres usando a linha de comando?


Existem duas ferramentas a serem observadas, dependendo de como você criou o arquivo de despejo.

Sua primeira fonte de referência deve ser a página man pg_dump(1) pois é isso que cria o dump em si. Diz:

Despejos podem ser produzidos em formatos de arquivo de script ou archive. Os dumps de script são arquivos de texto simples contendo os comandos SQL necessários para reconstruir o banco de dados para o estado em que estava no momento em que foi salvo. Para restaurar a partir de tal script, alimente-o com topsql(1). Arquivos de script podem ser usados ​​para reconstruir o banco de dados mesmo em outras máquinas e outras arquiteturas; com algumas modificações, mesmo em outros produtos de banco de dados SQL.

Os formatos alternativos de arquivo devem ser usados ​​com pg_restore(1) para reconstruir o banco de dados. Eles permitem que o pg_restore seja seletivo sobre o que é restaurado, ou até mesmo reordenar os itens antes de serem restaurados. Os formatos de arquivo de arquivo são projetados para serem portáteis entre arquiteturas.

Então depende da forma como foi despejado. Você provavelmente pode descobrir isso usando o excelente file(1) comando - se mencionar texto ASCII e/ou SQL, deve ser restaurado com psql caso contrário, você provavelmente deve usar pg_restore

Restaurar é bem fácil:
psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

ou
pg_restore -U username -d dbname -1 filename.dump

Confira suas respectivas páginas de manual - existem algumas opções que afetam o funcionamento da restauração. Você pode ter que limpar seus bancos de dados "ativos" ou recriá-los do template0 (como apontado em um comentário) antes de restaurar, dependendo de como os despejos foram gerados.