Como restaurar o banco de dados PostgreSQL do arquivo .tar?

17

Eu fiz backup de todos os bancos de dados do PostgreSQL durante backups incrementais usando o WHM, que cria um arquivo $ dbName. tar .

Os dados são armazenados nesses arquivos .tar, mas não sei como restaurá-los de volta aos bancos de dados individuais via SSH. Em particular, a localização do arquivo.

Eu tenho usado:

pg_restore -d client03 /backup/cpbackup/daily/client03/psql/client03.tar

que gera o erro 'não foi possível abrir o arquivo de entrada: Permissão negada'

Qualquer ajuda apreciada.

    
por Stephen 21.02.2010 / 05:43

5 respostas

21

Encontrou a string correta do código, no caso de alguém encontrar este tópico.

pg_restore -c -i -U postgres -d client03 -v "/tmp/client03.tar" -W

O detalhamento foi do link e um pouco de tentativa e erro

Essencialmente ...

-c to clean the database
-i to ignore any database version checks
-U to force a user
-d to select the database
-v verbose mode, don't know why
"$$" the location of the files to import in tmp to get around permission issues
-W to force asking for the password to the user (postgres)

Espero que o acima ajude alguém.

    
por 21.02.2010 / 10:23
1

Não tenho certeza se pode importar um arquivo .tar. Eu faria um

tar -zxvf client03.tar 

para extrair o que quer que esteja dentro do arquivo, e tente o pg_restore novamente. Eu sei que o pg_restore funciona, pois temos o mesmo método de restauração das restaurações bare-metal.

    
por 21.02.2010 / 10:17
1

Ao usar o PgAdmin III para fazer a restauração para mim, funcionou perfeitamente usando o seguinte comando que ele mesmo construiu:

pg_restore --host localhost --port 5432 --username "my_user_name" --dbname "my_db_name" --role "my_user_name" --no-password  --verbose "/Users/me/Desktop/backup_file.tar"

Nota para evitar avisos, é uma boa ideia ter o papel do proprietário dos objetos no arquivo de backup já existente no servidor de destino. Além disso, você já deve ter o banco de dados de destino criado e pertencente a essa função.

    
por 11.06.2013 / 01:02
0

Abaixo foi gerado para mim a partir do pgAdmin iii clicando no banco de dados e clicando com o botão direito e selecionando restaurar. Eu naveguei para o arquivo .tar que eu tinha e ele fez isso sozinho.

/usr/bin/pg_restore --host localhost --port 5434 --username "postgres" \
--dbname "dvdrental" --no-password  --schema public --verbose \
"/home/npena/Desktop/dvd/dvdrental.tar"
    
por 14.09.2013 / 00:40
0

Para a versão 9.5, execute o seguinte na linha de comandos

pg_restore -W -c -U [username] -d [database_name] -v "[path to extracted tar]"

    
por 09.12.2015 / 18:25

Tags