postgresql pg_dump的输出去哪里

问题描述 投票:21回答:5

我正在尝试备份postgresql的数据库,我想使用pg_dump命令。 我试过了 :

psql -U postgres
postgres-# pg_dump test > backup.sql

但我不知道输出文件的位置。 任何帮助将不胜感激

database postgresql command-line backup pg-dump
5个回答
14
投票

转到命令提示符和目录postgresql \ 9.3 \ bin。

.

..
    c:\Program files\postgresql\9.3\bin> pg_dump -h localhost -p 5432 -U postgres test > D:\backup.sql
...

在上面的命令后输入用户“postgres”密码并检查D:\驱动器为backup.sql文件


8
投票

在我的情况下(PostgreSQL 9.1.21,Centos 6.7),命令

runuser -l postgres -c 'pg_dump my_database > my_database.sql'

在这里保存文件:

/var/lib/pgsql/my_database.sql

不确定其他Linux dists,CentOS和/或pgl版本是否属实。根据the answer post by the asker of this question的说法,这是事实,但其他用户表示备份文件位于当前目录中(由于显而易见的原因,大多数人阅读此主题的情况不同)。好吧,我希望这可以帮助其他用户遇到同样的问题。

P.s。:如果这不是你的情况的路径,你可以尝试(在Linux中)使用下面的命令找到它(如@Bohemian在这个问题的评论中所述),但这可能需要一段时间:

find / -name 'my_database.sql'

编辑:我试图在Ubuntu 12.04中运行类似的命令(它适用于Ubuntu 18.04):

sudo -u postgres pg_dump my_database > my_database.sql

在这种情况下,文件保存在我运行命令的当前目录中!因此,这两种情况都可能发生在Linux中,具体取决于您正在使用的具体设备


6
投票

我参加这个派对已经迟到了,但我觉得答案都不正确。大多数人似乎暗示pg_dump在某处写了一个文件。它没有。您正在将输出发送到文件,并告诉shell在哪里写入该文件。

在您的示例pg_dump test > backup.sql中,使用plain或SQL格式,pg_dump命令不会在任何地方存储任何文件。它只是将输出发送到STDOUT,这通常是你的屏幕,它就完成了。

但是在你的命令中,你还告诉你的shell(终端,命令提示符等等)将STDOUT重定向到一个文件。这与pg_dump无关,但是像Bash或cmd.exe这样的shell的标准功能。

您使用>将STDOUT重定向到文件而不是屏幕。你给了文件名:“backup.sql”。由于您未指定任何路径,因此该文件将位于当前目录中。这可能是你的主目录,除非你已经在其他目录中完成了cd ...

pg_dump的特殊情况下,您还可以使用> /path/to/some_file替换-f some_file option shell重定向:

-f文件 --file =文件

将输出发送到指定的文件。对于基于文件的输出格式,可以省略此参数,在这种情况下使用标准输出。

所以你的命令可能是pg_dump test -f backup.sql,要求pg_dump直接写入该文件。

但无论如何,您都要给出文件名,如果没有指定路径,则会在当前目录中创建该文件。如果您的提示尚未显示当前目录,则可以在Unix上使用pwd命令和Windows中的cd显示该提示。


2
投票

如果您没有指定完全限定的路径,例如:

pg_dump your_db_name > dbdump

然后在Windows中它将转储存储在当前用户的主目录中。即:

C:\Users\username


1
投票

在Linux中,默认路径是:

的/ var / lib中/ PostgreSQL的/


0
投票

在pgadmin 4 for Mac中,假设转储成功,您可以单击“更多详细信息”,您将看到一个显示“运行命令:”的框,您将在该框中看到/ Applications / pgAdmin 4.app/Contents/SharedSupport/pg_dump --file“path / to / file”其中path的路径是存储的目的地。

© www.soinside.com 2019 - 2024. All rights reserved.