it-swarm-pt.tech

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

Eu sou novo em postgresql e, localmente, uso o pgadmin3. No servidor remoto, no entanto, não tenho esse luxo.

Eu já criei o backup do banco de dados e o copiei, mas existe uma maneira de restaurar um backup a partir da linha de comando? Eu só vejo coisas relacionadas à GUI ou ao pg_dumps, então, se alguém puder me dizer como fazer isso, seria ótimo!

176
TwixxyKit

Existem duas ferramentas para examinar, dependendo de como você criou o arquivo de despejo.

Sua primeira fonte de referência deve ser a página de manual pg_dump(1), pois é isso que cria o próprio dump. Diz:

Despejos podem ser gerados em scripts ou Formatos de arquivo. Despejos 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 de tal script, alimente-o para Psql (1). Os 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 de arquivo alternativos Devem ser usados ​​com o pg_restore (1) para Reconstruir o banco de dados. Eles permitem que Pg_restore seja seletivo sobre o que É restaurado, ou até mesmo para reordenar os itens Antes de serem restaurados. Os formatos de arquivo São projetados para Serem portáveis ​​entre as arquiteturas.

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

Restaurar é bem fácil:

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 trabalho - há algumas opções que afetam como a restauração funciona. Você pode ter que limpar seus bancos de dados "ao vivo" ou recriá-los do template0 (como apontado em um comentário) antes de restaurar, dependendo de como os dumps foram gerados.

223
Steven Schlansker

criar backup

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db

-F c é um formato personalizado (compactado e capaz de fazer em paralelo com -j N) -b está incluindo blobs, -v é detalhado, -f é o nome do arquivo de backup

restaurar a partir do backup

pg_restore -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"

importante para definir -h localhost - opção

131
pilot

Talvez seja necessário efetuar login como postgres para ter privilégios totais nos bancos de dados.

su - postgres
psql -l                      # will list all databases on Postgres cluster

pg_dump/pg_restore

  pg_dump -U username -f backup.dump database_name -Fc 

switch -F especifica o formato do arquivo de backup:

  • c usará o formato personalizado do PostgreSQL que é compactado e resulta no menor tamanho de arquivo de backup
  • d para o diretório em que cada arquivo é uma tabela
  • t para arquivo TAR (maior que o formato personalizado)
  • -h/--Host Especifica o nome do host da máquina na qual o servidor está executando
  • -W/--password Force pg_dump to Solicitar uma senha antes de se conectar a um banco de dados 

restaurar backup:

   pg_restore -d database_name -U username -C backup.dump

O parâmetro -C deve criar um banco de dados antes de importar os dados. Se isso não funcionar, você pode sempre criar banco de dados, por exemplo. com o comando (como usuário postgres ou outra conta que tenha direitos para criar bancos de dados) createdb db_name -O owner

pg_dump/psql

Caso você não tenha especificado o argumento -F, foi usado o formato SQL padrão de texto simples (ou com -F p). Então você não pode usar pg_restore. Você pode importar dados com psql.

cópia de segurança:

pg_dump -U username -f backup.sql database_name

restaurar: 

psql -d database_name -f backup.sql
58
Tombart

POSTGRESQL 9.1.12

DESCARTE:

pg_dump -U user db_name > archive_name.sql

coloque a senha do usuário e pressione enter.

RESTAURAR:

psql -U user db_name < /directory/archive.sql

coloque a senha do usuário e pressione enter.

40
Natan Medeiros

Abaixo está a minha versão do pg_dump que eu uso para restaurar o banco de dados:

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

ou use psql:

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

onde -h Host, -p port, -u nome de usuário de login, -d nome do banco de dados

25
Yahor M

Backup e restauração com GZIP

Para banco de dados de tamanho maior isso é muito bom

cópia de segurança

pg_dump -U user -d mydb | gzip > mydb.pgsql.gz

resore

gunzip -c mydb.pgsql.gz | psql dbname -U user

https://www.postgresql.org/docs/9.1/static/backup-dump.html

9
Sarath Ak
Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}

Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
7
Aaron Lelevier

1. abra o terminal.

2.backup seu banco de dados com o seguinte comando

seu postgres bin - /opt/PostgreSQL/9.1/bin/

seu servidor de banco de dados de origem - 192.168.1.111

a localização e o nome do seu arquivo de backup - /home/dinesh/db/mydb.backup

seu nome do banco de dados de origem - mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --Host '192.168.1.111' --port 5432 --username "postgres" --no-password --format personalizado --blobs --file "/ home/dinesh/db /mydb.backup "" mydatabase "

Arquivo 3.restore mydb.backup no destino.

seu servidor de destino - localhost

o nome do seu banco de dados de destino - mydatabase

criar banco de dados para restaurar o backup.

/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CRIAR BANCO DE DADOS mydatabase"

restaura o backup.

/opt/PostgreSQL/9.1/bin/pg_restore --Host 'localhost' --port 5432 --username "postgres" --dbnome "mydatabase" --no-password --clean "/ home/dinesh/db/mydb. cópia de segurança"

6
Dinesh-SriLanka

Como abaixo link disse, você pode usar o comando psql para restaurar o arquivo de despejo:

https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE

psql dbname < infile

se você precisar definir o nome de usuário, basta adicionar o nome de usuário após o comando, como:

psql dbname < infile username
2
Maryam Saeidi

Tente ver se os seguintes comandos podem ajudá-lo:

Sudo su - yourdbuser
psql
\i yourbackupfile
2
Mehmet Ali

Se você criar um backup usando o pg_dump, poderá restaurá-lo da seguinte maneira:

  1. Abra a janela de linha de comando
  2. Vá para a pasta bin do Postgres. Por exemplo: cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. Digite o comando para restaurar seu banco de dados. For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. Digite a senha para o seu usuário postgres
  5. Verifique o processo de restauração
2
Nick Taylor

Se você tiver um arquivo SQL de backup, poderá restaurá-lo facilmente. Basta seguir as instruções, dadas no abaixo

1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example:  cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql 

Digite a senha para o seu usuário postgres, se necessário, e deixe o Postgres fazer seu trabalho. Então você pode verificar o processo de restauração.

1
Omar Hasan

Restaurar um arquivo de backup do postgres depende de como você fez o backup em primeiro lugar.

Se você usou pg_dump com -F c ou -F d você precisa usar o pg_restore, caso contrário você pode simplesmente usar 

psql -h localhost -p 5432 -U postgres <arquivo de backup

9 maneiras de fazer backup e restaurar bancos de dados postgres

1
Prashant Kumar

1) Abra o terminal psql.

2) Descompacte/descompacte o arquivo de despejo.

3) Crie um banco de dados vazio.

4) use o seguinte comando para restaurar o arquivo .dump

<database_name>-# \i <path_to_.dump_file>
1
Vaibhav Desai

experimentar:

pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
1
Cristhian Gonzalez

Se você quiser fazer backup de seus dados ou restaurar dados de um backup, execute os seguintes comandos:

1 Para criar backup de seus dados, vá para o diretório postgres\bin\como C:\programfiles\postgres\10\bin\ e digite o seguinte comando - pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup

2 Para restaurar dados de um backup, vá para o diretório postgres\bin\como C:\programfiles\postgres\10\bin\ e digite o comando abaixo - C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup

Por favor, certifique-se que o arquivo de backup existe.

0
Girjesh Kumar Suryawanshi

Eu estava tendo problemas de autenticação com o pg_dump, então mudei meu arquivo de despejo

mv database_dump /tmp

no diretório temp e, em seguida, correu

su -u postgres
cd /tmp
pg_restore database_dump

Se você tiver um despejo de banco de dados grande, talvez queira apenas criar outro diretório no qual o usuário atual e o usuário do postgres possam acessar e colocar o arquivo de despejo do banco de dados nele.

0
user1876508

tente isso:

psql -U <username> -d <dbname> -f <filename>.sql

Restaurar o banco de dados psql do arquivo .sql

0
Faysal Maqsood