2017-09-25 50 views
0

我是postgres的新手。我已经在终端pg_dump创建并导入pgsql数据库

pg_dump -U USERNAME DBNAME > dbexport.pgsql 

现在出口的大型,复杂的数据库使用下面的命令,我转这.pgsql文件到另一台计算机,什么是正确的命令来自动创建和恢复完全相同的数据库如出口?任何建议,将不胜感激

+0

'PSQL -f dbexport.pgsql' [如记录在手册中(https://www.postgresql.org/docs/current/static/backup-dump.html#BACKUP-DUMP-RESTORE ) –

回答

0

你转储数据库的方式,有关数据库本身的信息不包括在转储(这是一个普通的SQL文件)。

您可以使用-C选项包括CREATE DATABASE在转储(dump是与psql恢复),或使用自定义格式:

pg_dump -F c -U postgres DBNAME -f dbexport.pgsql 

可以与pg_restore恢复这样:

pg_restore -C -d postgres -U postgres dbexport.pgsql 
+0

为什么'pg_dump -U USER名称DBNAME> dbexport.pgsql'产生一个400 MB文件,而'pg_dump -F c -U postgres DBNAME -f dbexport.pgsql'产生一个70 MB文件? –

+0

由于自定义格式是压缩的。它的优点之一。 –