Repor um ficheiro de salvaguarda postgres com a linha de comandos?
sou novo no pós-gresql, e localmente, uso o PG admin3. No servidor remoto, no entanto, Não tenho esse luxo.
já criei o backup da base de dados e copiei-o, mas, existe uma maneira de restaurar um backup da linha de comando? Eu só vejo coisas relacionadas com GUI ou PG_ Paps, então, se alguém pode me dizer como fazer sobre isso, isso seria ótimo!
15 answers
Existem duas ferramentas para olhar, dependendo de como você criou o arquivo dump.
A tua primeira fonte de referência deve ser a página do homem {[[2]} pois é isso que cria a lixeira em si. Diz:
Depende da forma como foi despejado. Você provavelmente pode descobrir isso usando o excelente comandoOs resultados podem ser obtidos no programa ou formatos de arquivo. Os resultados do programa são ficheiros de texto simples que contêm o SQL comandos necessários para reconstruir a base de dados para o estado era na altura, foi salvo. Para repor a partir de tal programa, alimentá - lo a psql (1). Os ficheiros de Script podem ser usados para reconstruir a base de dados mesmo sobre outras máquinas e outros arquitecturas; com algumas modificações mesmo em outros produtos de base de dados SQL.
Os formatos de arquivo alternativos deve ser usado com pg_restore (1) para reconstruir a base de dados. Eles permitem pg_restore para ser seletivo sobre o que é restaurado, ou mesmo para reordenar o itens antes de serem restaurados. O os formatos de ficheiros de arquivo são desenhados para ser portátil através arquitectura.
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 é muito 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-há algumas opções que afetam como a restauração funciona. Você pode ter que limpar suas bases de dados" ao vivo " ou recriá-las a partir de template0 (como indicado em um comentário) antes de restaurar, dependendo de como os dumps foram gerados.
Criar uma cópia de segurança
pg_dump -i -h localhost -p 5432 -U postgres -F c -b -v -f
"/usr/local/backup/10.70.0.61.backup" old_db
Repor a partir da cópia de segurança
pg_restore -i -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
Você pode precisar de ser logado como postgres
para ter privilégios completos em bases 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
especifique o formato do ficheiro de salvaguarda:
-
c
irá usar o formato PostgreSQL personalizado que é comprimido e resulta no menor tamanho de backup -
d
para a pasta em que cada ficheiro é uma tabela -
t
Para O arquivo TAR (maior que o formato personalizado) -
-h
/--host
Indica o nome da máquina na qual o servidor está a correr -
-W
/--password
forçarpg_dump
a pedir uma senha antes de se ligar a uma base de dados
Restaurar a cópia de segurança:
pg_restore -d database_name -U username -C backup.dump
O parâmetro -C
deve criar uma base de dados antes de importar dados. Se não funcionar você pode sempre criar banco de dados eg. com o comando (como utilizador postgres
ou outra conta que tenha direitos para criar bases de Dados) createdb db_name -O owner
Pg_dump/psql
No caso de você não foi indicado o argumento -F
que foi usado o formato SQL de texto simples por omissão (ou com -F p
). Então não podes 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
POSTGRESQL 9. 1. 12
DUMP:
pg_dump -U user db_name > archive_name.sql
Coloque a senha do utilizador e carregue em enter.
Restaurar:
psql -U user db_name < /directory/archive.sql
Coloque a senha do utilizador e carregue em enter.
Abaixo está a minha versão de {[2] } que eu uso para restaurar a base de Dados:
pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup
Ou utilizar psql
:
psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup
Em que -h
máquina, -p
Porta, -u
utilizador de autenticação, -d
Nome da base de Dados
Fazer a cópia de segurança e repor com o GZIP
Para uma base de dados de tamanho maior isto é muito bom
Apoio
pg_dump -U user -d mydb | gzip > mydb.pgsql.gz
Revore
gunzip -c mydb.pgsql.gz | psql dbname -U user
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
1.abra o terminal.
2.salvaguardar a sua base de dados com o seguinte comando
Os seus postgres bin - /opt / PostgreSQL / 9, 1/bin /
O seu servidor de base de dados de origem - 192. 168. 1. 111
A sua localização de cópia de segurança e nome - /home/dinesh/db/mydb.cópia de segurança
O seu nome de código db-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.cópia de segurança "mydatabase"
3.restaurar o mydb.ficheiro de cópia de segurança para o destino.
O seu servidor de destino-localhost
O nome da sua base de dados de destino - mydatabase
Criar uma base de dados para restaurar a cópia de segurança.
/ opt/PostgreSQL / 9. 1/bin / psql-h 'localhost' - p 5432-U postgres-c "CREATE DATABASE mydatabase"
Restaure o backup.
/ opt/PostgreSQL / 9. 1/bin / pg_restore --host 'localhost' --port 5432 --nome de utilizador "postgres" --dbname "mydatabase" --no-password --clean " / home/dinesh/db / mydb.cópia de segurança"
Como abaixo do link disse, Você pode usar o comando psql para restaurar o ficheiro dump:
Https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
Se precisar de definir o nome de utilizador, basta adicionar o nome de utilizador a seguir ao comando como:
psql dbname < infile username
Se criar uma cópia de segurança usando o pg_dump, poderá restaurá-la facilmente da seguinte forma:
- abrir a janela da linha de comandos
- Vá para a pasta do bin Postgres. Por exemplo:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
- introduza o comando para restaurar a sua base de dados.
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
- escreva a senha para o seu utilizador de postgres
- Verifique o processo de restauração
Tente ver se os seguintes comandos o podem ajudar:
sudo su - yourdbuser
psql
\i yourbackupfile
Restaurar um arquivo de backup postgres depende de como você tomou o backup em primeiro lugar.
Se usou pg_dump com-F C ou-F D precisa de usar pg_restore caso contrário pode apenas usar
Psql-h localhost-p 5432-U postgres
9 formas de salvaguardar e restaurar as bases de dados postgres
Estava a ter problemas de autenticação ao executar o pg_dump, por isso mudei o meu ficheiro de descarga
mv database_dump /tmp
No directório temp e depois correu
su -u postgres
cd /tmp
pg_restore database_dump
Se tiver uma grande descarga de bases de dados, poderá apenas querer criar outra pasta onde o seu utilizador actual e o utilizador de postgres possam aceder e colocar o ficheiro de 'dump' de bases de dados nisso.
Se quiser salvaguardar os seus dados ou restaurar os dados de uma cópia de segurança, pode executar os seguintes comandos:
1 para criar uma cópia de segurança dos seus dados, vá para o seu postgres \bin\ directory como C:\programfiles\postgres\10\bin\
e depois escreva o seguinte comando -
pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup
2 para restaurar os dados de uma cópia de segurança, vá para o seu postgres \bin\ directory como C:\programfiles\postgres\10\bin\
e depois escreva abaixo do comando - C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup
Por favor, certifique-se que o ficheiro de salvaguarda existe.
Ver abaixo exemplo de funcionamento
C:/Program Files/PostgreSQL/9.4 / bin\pg_restore.exe --host localhost -- port 5432 --username "postgres" --dbname "newDatabase" --no-password --verbose
"C:\Users\Yogesh\Downloads\new telecarregamento\DB.cópia de segurança"