我想备份PostgreSQL数据库,想要使用pg_dump
命令。
我尝试了:
psql -U postgres
postgres-# pg_dump test > backup.sql
但我不知道输出文件去了哪里。
非常感谢任何帮助。
我想备份PostgreSQL数据库,想要使用pg_dump
命令。
我尝试了:
psql -U postgres
postgres-# pg_dump test > backup.sql
但我不知道输出文件去了哪里。
非常感谢任何帮助。
pg_dump
会在某个地方写入文件。实际上它并不会。你将输出发送到一个文件中,并且你告诉Shell去哪里写这个文件。pg_dump test > backup.sql
中,使用了plain
或SQL格式,pg_dump
命令不会在任何地方存储文件。它只是将输出发送到STDOUT
,通常是您的屏幕,然后完成。pg_dump
无关,而是Bash或cmd.exe等Shell的标准功能。>
将STDOUT重定向到文件而不是屏幕。并且您给出了文件名:"backup.sql"。由于您没有指定任何路径,因此该文件将位于您的当前目录下。这可能是您的主目录,除非您已经cd ...
进入其他目录。pg_dump
情况下,您还可以使用替代> /path/to/some_file
Shell重定向的方法,即使用-f some_file
选项: -f file
--file=file
将输出发送到指定的文件。对于基于文件的输出格式,可以省略此参数,此时将使用标准输出。
因此,您的命令可能是pg_dump test -f backup.sql
,要求pg_dump直接写入该文件。
但无论如何,您都需要给出文件名,如果不指定路径,则文件将在当前目录中创建。如果您的提示符尚未显示当前目录,您可以在Unix上使用pwd
命令,在Windows上使用cd
命令来显示它。
..
c:\Program files\postgresql\9.3\bin> pg_dump -h localhost -p 5432 -U postgres test > D:\backup.sql
...
在上述命令中输入用户“postgres”的密码并检查D:\
驱动器的backup.sql
文件。
在我的情况下(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 发行版、CentOS 和/或 pgl 版本是否适用。根据这个问题的提问者的回答,是正确的,但其他用户说备份文件在当前目录(这种情况与大多数阅读此线程的人不同,原因显而易见)。希望这可以帮助其他遇到相同问题的用户。
P.s.:如果这不是您的情况,请尝试使用以下命令(由 @Bohemian 在此问题的评论中指出)在 Linux 中查找,但这可能需要一些时间:
find / -name 'my_database.sql'
编辑:我在尝试在Ubuntu 12.04中运行类似的命令(它可以在Ubuntu 18.04上工作):
sudo -u postgres pg_dump my_database > my_database.sql
而且在这种情况下,文件是保存在我运行命令的当前目录中的!因此,在Linux中,这两种情况都可能发生,具体取决于您正在使用的特定发行版。
对于Linux系统而言,其默认的dump路径为:
/var/lib/postgresql/
如果您没有指定完全限定路径,例如:
pg_dump your_db_name > dbdump
在Windows中,它会将转储文件存储在当前用户的主目录中。即:
C:\Users\username
如果您使用的是Linux(除了CentOS)
sudo su - postgres
pg_dump your_db_name > your_db_name.sql
cd /var/lib/postgresql
ls -l
在这里你将看到你的数据库名称.sql文件
完成以下步骤后
psql -U postgres
使用命令
\! pg_dump -U postgres humaine > C:\Users\saivi\OneDrive\Desktop\humaine_backup1.sql
在服务器(Ubundu/Centos)上,备份文件的路径将是/var/lib/pgadmin/storage/
find / -name backup.sql
? - Bohemianpg_dump -h localhost -p 5432 -U postgresUser dbName > backup.sql
,那么backup.sql
文件将保存在您运行该命令的目录中(所以如果您在Linux终端中,请输入ls
来查看目录内容)。 - undefined