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

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


当前回答

下面是我用来恢复数据库的pg_dump版本:

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

或者使用psql:

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

-h主机,-p端口,-u登录用户名,-d数据库名称

其他回答

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

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 -d [Dbname] -U [UserName] -p 5432 < [FileLocation]

恢复一个.SQL文件

pg_restore -U [Username] -d [Dbname] -1 [FileLocation]

如果出现用户身份验证错误,请转到程序文件PSQL/data文件夹中的pg_hba.conf文件,并将“METHOD”更改为“Trust”。 重新启动windows服务中的psql serive (Win + R—> services.msc)。

我没有看到这里提到转储文件扩展名(*.dump)。

这个解决方案对我很有效:

我有一个转储文件,需要恢复它。

首先,我尝试用pg_restore这样做,并得到:

pg_restore: error: input file appears to be a text format dump. Please use psql.

我用psql做了,工作得很好:

psql -U myUser -d myDataBase < path_to_the_file/file.dump

备份= = >

选项1:在cmd中备份密码 1.PGPASSWORD="mypassword" pg_dump -U postgres -h localhost——insert mydb>mydb.sql 选项2:在cmd中进行无密码备份 2. pg_dump -U postgres -h localhost——插入mydb>mydb.sql Option3:以gzip格式备份(如果数据库很大) 3.pg_dump -U postgres -h localhost mydb——insert | gzip > mydb.gz

恢复: 1. psql -h localhost -d mydb -U postgres -p 5432 < mydb.sql

这招对我很管用:

pg_restore --verbose --clean --no-acl --no-owner --host=localhost --dbname=db_name --username=username latest.dump