在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。

我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。


当前回答

使用GZIP进行备份和恢复

对于较大的数据库,这是非常好的

备份

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

恢复

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

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

其他回答

请看下面的例子,它的工作

C:/Program Files/PostgreSQL/9.4/bin\pg_restore.exe——host localhost——port 5432——username "postgres"——dbname "newDatabase"——no-password——verbose

“C: \用户下载\优\ \新下载\ DB.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是自定义格式(压缩后,可以与-j N并行)-b是包含blobs, -v是verbose, -F是备份文件名。

从备份恢复

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

设置-h localhost - option很重要

恢复postgres备份文件取决于最初是如何进行备份的。

如果你使用pg_dump和-F c或-F d,你需要使用pg_restore,否则你可以使用

psql -h localhost -p 5432 -U postgres <备份文件

9种备份和恢复postgres数据库的方法

没有密码提示的最短路径

psql "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"

如果您使用Windows操作系统

psql.exe "postgresql://<db_user>:<db_pass>@<ip>:<port>/<db_name>" < "backup.sql"

try:

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