Existem duas ferramentas para analisar, 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:
Os dumps podem ser gerados em formatos de script ou arquivo morto. Os dumps de script são arquivos de texto sem formatação que contêm 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 um script desse tipo, alimente-o no 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 alternativos de arquivo morto 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 mesmo reordene os itens antes de serem restaurados. Os formatos de arquivo morto são projetados para serem portáteis nas arquiteturas.
Depende da maneira como foi despejado. Provavelmente, você pode descobrir isso usando o file(1)
comando excelente - se ele mencionar texto ASCII e / ou SQL, ele deve ser restaurado, psql
caso contrário você provavelmente deve usarpg_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 as respectivas páginas de manual - há algumas opções que afetam o funcionamento da restauração. Pode ser necessário limpar seus bancos de dados "ativos" ou recriá-los a partir do template0 (conforme indicado em um comentário) antes de restaurar, dependendo de como os dumps foram gerados.
-d
e-f
ao mesmo tempo.pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
, veja aqui: stackoverflow.com/questions/27882070/…criar backup
-F c é um formato personalizado (compactado e capaz de executar paralelamente a -j N) -b inclui blobs, -v é detalhado, -f é o nome do arquivo de backup
restaurar do backup
importante definir -h localhost - opção
fonte
Pode ser necessário fazer o login
postgres
para ter privilégios totais nos bancos de dados.pg_dump / pg_restore
switch
-F
especifique o formato do arquivo de backup:c
usará o formato PostgreSQL personalizado, compactado e resultando no menor tamanho de arquivo de backupd
para o diretório em que cada arquivo é uma tabelat
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
Forcepg_dump
a solicitar uma senha antes de conectar-se a um banco de dadosrestaurar backup:
O parâmetro
-C
deve criar o banco de dados antes de importar os dados. Se não funcionar, você sempre pode criar um banco de dados, por exemplo. com comando (como usuáriopostgres
ou outra conta que possui direitos para criar bancos de dados)createdb db_name -O owner
pg_dump / psql
Caso você não tenha especificado o argumento,
-F
o formato SQL de texto sem formatação padrão foi usado (ou com-F p
). Então você não pode usarpg_restore
. Você pode importar dados compsql
.cópia de segurança:
restaurar:
fonte
postgres
) tiver uma senha definida, a-W
opção deverá ser usada. Por exemplo, no Ubuntu, sem fazersu postgres
nada do terminal,$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
é o comando que funcionou para mim para restaurar meu backup no meu host local. Observe que a-h
opção é necessária.-W
opção nunca é essencial.pg_dump
solicitará automaticamente uma senha se o servidor exigir autenticação por senha. Além disso, você pode usar aPGPASSWORD
variável env, se estiver usando senhas em texto sem formatação.-h
será necessário se o padrãoPGHOST
não for aplicável. Essas opções são comuns para muitos utilitários do PostgreSQL, portanto, não são essenciais para responder a essa pergunta (depende muito da sua configuração).pg_dump/psql
parte opção é o trabalho para mim. mas a 1ª partepg_dump/pg_restore
não funciona para mim para restauração. Obrigado.-Fc
POSTGRESQL 9.1.12
DUMP:
coloque a senha do usuário e pressione enter.
RESTAURAR:
coloque a senha do usuário e pressione enter.
fonte
Abaixo está minha versão da
pg_dump
qual eu uso para restaurar o banco de dados:ou use
psql
:onde
-h
host,-p
porta,-u
nome de usuário de login,-d
nome do banco de dadosfonte
my_new_database
já deveria existir ao usarpsql
, não?Backup e restauração com GZIP
cópia de segurança
restaurar
https://www.postgresql.org/docs/9.1/static/backup-dump.html
fonte
gunzip -c mydb.pgsql.gz | sudo -u postgres psql
Para obter as permissões para operar no banco de dados. Considere também o--clean
sinalizador ao despejar, que limpará todos os dados existentes, pode ser útil.fonte
Isso funcionou para mim:
fonte
--no-owner
realmente me ajudou.1.abre o terminal.
2. faça backup do seu banco de dados com o seguinte comando
seu bin do postgres - /opt/PostgreSQL/9.1/bin/
seu servidor de banco de dados de origem - 192.168.1.111
o local e o nome do arquivo de backup - /home/dinesh/db/mydb.backup
seu nome de 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 custom --blobs --file "/ home / dinesh / db /mydb.backup "" mydatabase "
3. restaure o arquivo mydb.backup no destino.
seu servidor de destino - localhost
o nome do banco de dados de destino - mydatabase
crie um banco de dados para restaurar o backup.
/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"
restaurar o backup.
/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" - no-password --clean "/ home / dinesh / db / mydb. cópia de segurança"
fonte
Se você criar um backup usando o pg_dump, poderá restaurá-lo facilmente da seguinte maneira:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
fonte
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
fonte
tente isto:
Restaurar psql do banco de dados a partir do arquivo .sql
fonte
Como o link abaixo 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
se você precisar definir o nome de usuário, adicione o nome de usuário após o comando, como:
fonte
experimentar:
fonte
A restauração de 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, precisará usar pg_restore, caso contrário, poderá usar
9 maneiras de fazer backup e restaurar bancos de dados postgres
fonte
Tente ver se os seguintes comandos podem ajudá-lo:
fonte
Desculpe pelo necropost, mas essas soluções não funcionaram para mim. Estou no postgres 10. No Linux:
service postgresql-10 restart
Mude o diretório para onde meu backup.sql estava localizado e execute:
psql postgres -d database_name -1 -f backup.sql
-database_name é o nome do meu banco de dados
-backup.sql é o nome do meu arquivo de backup .sql.
fonte
Eu estava tendo problemas de autenticação ao executar o pg_dump, então mudei meu arquivo de despejo
no diretório temporário e, em seguida, executei
Se você possui um grande dump de banco de dados, pode apenas criar outro diretório no qual o usuário atual e o usuário do postgres possam acessar e colocar o arquivo de dump do banco de dados nele.
fonte
Se você tiver um arquivo SQL de backup, poderá restaurá-lo facilmente. Basta seguir as instruções fornecidas abaixo
Digite a senha para o usuário do postgres, se necessário, e deixe o Postgres fazer seu trabalho. Então você pode verificar o processo de restauração.
fonte
Se você deseja fazer backup de seus dados ou restaurar dados de um backup, você pode executar os seguintes comandos:
Para criar backup dos seus dados, vá para o diretório postgres \ bin \
C:\programfiles\postgres\10\bin\
e digite o seguinte comando:Para restaurar dados de um backup, vá para o diretório postgres \ bin \
C:\programfiles\postgres\10\bin\
e digite o comando abaixo:Verifique se o arquivo de backup existe.
fonte
Veja abaixo o exemplo de seu funcionamento
C: / Arquivos de Programas / PostgreSQL / 9.4 / bin \ pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "newDatabase" --no-password --verbose
" C: \ Usuários \ Yogesh \ Downloads \ novo Download \ DB.backup "
fonte