postgresql pg_dump的输出去哪里

Dar*_*ari 25 database postgresql backup command-line pg-dump

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

psql -U postgres
postgres-# pg_dump test > backup.sql
Run Code Online (Sandbox Code Playgroud)

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

Mee*_*eem 15

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

.

..
    c:\Program files\postgresql\9.3\bin> pg_dump -h localhost -p 5432 -U postgres test > D:\backup.sql
...
Run Code Online (Sandbox Code Playgroud)

在上面的命令之后输入User"postgres"密码并检查D:\drive for backup.sqlfile


小智 9

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

runuser -l postgres -c 'pg_dump my_database > my_database.sql'
Run Code Online (Sandbox Code Playgroud)

在这里保存文件:

/var/lib/pgsql/my_database.sql
Run Code Online (Sandbox Code Playgroud)

不确定其他Linux dists,CentOS和/或pgl版本是否属实.根据提问者对这个问题的回答,这是事实,但是其他用户说备份文件是在当前目录中(由于显而易见的原因,大多数人阅读这个帖子的情况不同).好吧,我希望这可以帮助其他用户遇到同样的问题.

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

find / -name 'my_database.sql'
Run Code Online (Sandbox Code Playgroud)

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

sudo -u postgres pg_dump my_database > my_database.sql
Run Code Online (Sandbox Code Playgroud)

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


miv*_*ivk 9

我参加这个聚会很晚,但是我觉得所有答案都没有正确。大多数似乎暗示着pg_dump将文件写入某处。没有。要发送的输出到一个文件,告诉壳在哪里写的文件。

pg_dump test > backup.sql使用plain或SQL格式的示例中,该pg_dump命令不在任何位置存储任何文件。它只是将输出发送到STDOUT,通常是您的屏幕,并且已完成。

但是在您的命令中,您还告诉外壳程序(终端,命令提示符等)将STDOUT重定向到文件。这无关,pg_dump但是是Bash或cmd.exe等shell的标准功能。

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

在特定情况下pg_dump,你也可以有用来将替代> /path/to/some_fileshell重定向,通过使用该-f some_file选项

-f文件
--file =文件

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

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

但是无论如何,您都需要提供文件名,如果不指定路径,则会在当前目录中创建文件。如果提示符尚未显示当前目录,则可以pwd在Unix和cdWindows 上通过命令显示该目录。


Iva*_*anM 8

对于 Linux,默认转储路径是:

/var/lib/postgresql/
Run Code Online (Sandbox Code Playgroud)


Wel*_*eTo 5

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

pg_dump your_db_name > dbdump

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

C:\Users\username