在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
在本地,我使用pgadmin3。然而,在远程服务器上,我没有这样的特权。
我已经创建了数据库备份并复制了它,但是是否有一种方法可以从命令行恢复备份?我只看到与GUI或pg_dumps相关的东西。
当前回答
当需要备份数据或从备份中恢复数据时,使用以下命令:
要创建数据备份,转到您的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 请确保备份文件存在。
其他回答
如下面的链接所示,你可以使用psql命令来恢复转储文件:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
如果你需要设置用户名,只需在命令后添加用户名:
psql dbname < infile username
恢复转储文件
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)。
此解决方案仅适用于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
试试这个:
psql -U <username> -d <dbname> -f <filename>.sql
从。sql文件恢复数据库psql