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

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


当前回答

此解决方案仅适用于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)

普拉维达!

其他回答

当需要备份数据或从备份中恢复数据时,使用以下命令:

要创建数据备份,转到您的postgres\ bin\目录,如C:\programfiles\postgres\10\bin\,然后键入以下命令: pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb. 090718_after_readupload .backup 要从备份中恢复数据,转到您的postgres\ bin\目录,如C:\programfiles\postgres\10\bin\,然后键入以下命令: C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ programFiles\postgres\10\bin 请确保备份文件存在。

如果你正在使用docker,这个答案可能会有帮助。

启动容器 Docker start <postgres_container_id> .使用实例 访问容器内的bash Docker exec -it <postgres_container_id> bash 将.tar备份文件复制到docker容器(在另一个窗口中) Docker cp postgres_dump.tar <postgres_container_id>:/ 恢复备份 pg_restore -c -U < postgres_user > -d <password> -v "postgres_dump.tar 输入密码

1)打开psql终端。

2)解压/ untar转储文件。

3)创建一个空数据库。

4)使用以下命令恢复。dump文件

<database_name>-# \i <path_to_.dump_file>

此解决方案仅适用于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)

普拉维达!

我没有看到这里提到转储文件扩展名(*.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