postgresql-恢复 .dump 文件

发布于 2024-08-14 03:32:51 字数 471 浏览 5 评论 0原文

我是 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”文件是什么以及如何恢复它?

I am new for psql. I got from my server data.dump file. I need to restore it in my local.
I tried these commands.

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: ☺☺

What is this ".dump" file and how to restore it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

私藏温柔 2024-08-21 03:32:51

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

我在终端中写的是:

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

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

I got a .dump file from my server (Heroku). As Klaus said, pg_restore is the only way I could restore it in my local.

What I wrote in my terminal was:

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

There are a lot of options you can see in Klaus link of pg_restore :)

叹沉浮 2024-08-21 03:32:51

psql -f filenamed.dmp db_name

工作正常

psql -f filenamed.dmp db_name

works fine

讽刺将军 2024-08-21 03:32:51

对于 Postrgres 9.2

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

For Postrgres 9.2

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U [user] -d [db] [filename].dump
欲拥i 2024-08-21 03:32:51

查看 pg_restore 命令。

Have a look at the pg_restore command.

初心 2024-08-21 03:32:51

我发现在windows环境下这很棘手。

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

psql -U 用户名 -f 数据库.dump 数据库名

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

I found it tricky in windows environment.

pg_restore will not work if its a text format dump. In that case, we need to use psql.

psql -U username -f database.dump databasename

It will prompt for the password of the username and then the restoring process will be initiated.

浅笑依然 2024-08-21 03:32:51

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 - get详细输出到屏幕
  • -C - 意味着从转储文件创建一个全新的数据库(它将被命名为您转储的数据库的名称)
  • -d - 令人困惑的是,这需要是已经存在的数据库的名称,基本上 pg_restore 需要连接到现有数据库,以便它可以运行必要的脚本来创建新数据库
  • mydbdump.dmp 这是您尝试恢复的转储文件的位置。

pg_restore is far from obvious, this is the command I used to create a new database and restore the dumpfile into it on a remote Postgres instance running on AWS. If your connection is correct, pg_restore should immediately ask you to input your password)

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

Where the switches are:

  • -h - hostname on aws
  • -U - username, this needs to be an admin user with permissions to create a db
  • --verbose - get verbose output to screen
  • -C - means create a brand new database from the dumpfile (it will be named whatever the db you dumped was called)
  • -d - confusingly this needs to be the name of a database that already exists, basically pg_restore needs to connect to an existing DB so it can run the necessary scripts to create the new database
  • mydbdump.dmp this is the location of the dumpfile you are attempting to restore.
以歌曲疗慰 2024-08-21 03:32:51

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

psql is for plain text dumps, use pg_restore.

我三岁 2024-08-21 03:32:51

如果您有 pgsql 转储文件(例如 pgsql_dump.sql.gz)并想要恢复它,请尝试执行以下步骤 -

sudo su postgres
psql
drop database my_database;

(用于删除现有数据库。提供要恢复的数据库的名称来代替 my_database,如果数据库存在)

create database my_database;

(提供要恢复的数据库的名称来代替 my_database)

\q

(这是为了退出 psql

gunzip <  /tmp/pgsql_dump.sql.gz | psql -Upostgres my_database 

(提供保存转储的实际路径)代替 /tmp/

If you have pgsql dump file (e.g. pgsql_dump.sql.gz) and want to restore it, then try following the below steps-

sudo su postgres
psql
drop database my_database;

(For dropping the existing database. Provide the name of the database you want to restore in place of my_database, if the database exists)

create database my_database;

(Provide the name of the database you want to restore in place of my_database)

\q

(This is to exit psql)

gunzip <  /tmp/pgsql_dump.sql.gz | psql -Upostgres my_database 

(Provide actual path where the dump is kept in place of /tmp/)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文