postgresql-恢复.dump文件

时间:2009-12-08 11:08:52

标签: postgresql dump database-restore

我是psql的新手。我从我的服务器data.dump文件中获取。我需要在当地恢复它。 我尝试了这些命令。

i)psql -U postgres dbname -f servicedb.dump

Error:
      psql: warning: extra command-line argument "-f" ignored
      psql: warning: extra command-line argument "servicedb.dump" ignored

ii)psql -U postgres dbname< servicedb.dump

 Error:
              ^
 ERROR:  syntaxe error at or near "☺"
 LINE 1: ☺☺

这个“.dump”文件是什么以及如何恢复它?

7 个答案:

答案 0 :(得分:46)

我从我的服务器(Heroku)获得了一个.dump文件。正如Klaus所说,pg_restore是我在当地恢复它的唯一方法。

我在终端上写的是:

pg_restore -c -d [database_name] [dumpfile_name].dump

你可以在pg_restore的Klaus链接中看到很多选项:)

答案 1 :(得分:20)

psql -f filenamed.dmp db_name

工作正常

答案 2 :(得分:13)

对于Postgres 9.2

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U [user] -d [db] [filename].dump

答案 3 :(得分:10)

查看pg_restore命令。

答案 4 :(得分:1)

我发现它在Windows环境中很棘手。

如果

pg_restore是文本格式转储,则将不起作用。在这种情况下,我们需要使用psql。

psql -U username -f database.dump databasename

它将提示输入用户名的密码,然后将启动恢复过程。

答案 5 :(得分:0)

pg_restore远非显而易见,这是我用来创建新数据库并将转储文件还原到AWS上运行的远程Postgres实例的命令。如果您的连接正确,pg_restore应该立即要求您输入密码)

pg_restore -h mypostgresdb.eu-west-1.rds.amazonaws.com -U adminuser --verbose -C -d existingdatabase mydbdump.dm

开关在哪里

  • -h-AWS上的主机名
  • -U-用户名,该用户名必须是具有创建数据库权限的管理员用户
  • -verbose-将详细输出显示到屏幕
  • -C-意味着从转储文件创建一个全新的数据库(它将被命名为您所转储的数据库名称)
  • -d-令人困惑的是,这必须是已经存在的数据库的名称,基本上pg_restore需要连接到现有的数据库,以便它可以运行必要的脚本来创建新的数据库
  • mydbdump.dmp,这是您要还原的转储文件的位置。

答案 6 :(得分:0)

psql用于纯文本转储,请使用pg_restore。