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

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


当前回答

创建备份

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很重要

其他回答

试试这个:

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

从。sql文件恢复数据库psql

遵循以下3个步骤:

启动postgresql server - sudo systemctl Start postgresql 启用same - sudo systemctl Enable postgresql restore命令- pg_restore -h localhost -p 5432 - u postgres -d old_db . sh

假设转储文件在同一目录中

链接:

https://www.postgresqltutorial.com/postgresql-restore-database https://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432

此解决方案仅适用于Windows。

首先,确保您已经将postgres bin文件夹添加到“Path”环境变量中(在我的例子中,这个文件夹是C:\Program Files\PostgreSQL\12\ bin)。

然后,打开Windows命令解释器(cmd),进入.sql文件所在的文件夹并执行以下命令:

pg_restore -U userName -d database-1 backupfile.sql

例如:

pg_restore -U sam -d SamDataBase -1 SamDataBaseBackup.sql

(它会问你的用户密码,所以确保输入正确,然后点击enter)

普拉维达!

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

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

“C: \用户下载\优\ \新下载\ DB.backup”

如下面的链接所示,你可以使用psql命令来恢复转储文件:

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

psql dbname < infile

如果你需要设置用户名,只需在命令后添加用户名:

psql dbname < infile username