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

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


当前回答

try:

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

其他回答

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

要创建数据备份,转到您的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 请确保备份文件存在。

这招对我很管用:

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

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

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

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

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

下面是我用来恢复数据库的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数据库名称

使用压缩转储保存和恢复完全相同的状态

其他答案分别给出了所有的关键位,但希望这将提供“只是工作保存和恢复到精确状态”的命令对。

转储到文件mydb.psql:

PGPASSWORD=mypassword pg_dump -U my_username -h localhost mydb -Fc -f mydb.psql

恢复:

PGPASSWORD=mypassword pg_restore -U my_username -h localhost \
  --clean -d mydb -v mydb.psql

一些旗帜:

-Fc:格式压缩,而不是明文。 tmp文件。psql说: tmp。psql: PostgreSQL自定义数据库转储- v1.14-0 ——clean:在恢复目标DB之前销毁它,从而返回到完全相同的原始状态。 转储之后创建的任何数据都将丢失。

PGPASSWORD, -U和-h当然可以根据您的登录方法进行修改,例如,如果没有PGPASSWORD,您将提示输入密码,如果您在本地设置peer auth,这些都不需要。

在Ubuntu 22.04和PostgreSQL 14.5上测试。