【PG】pg_dump与pg_dumpall区别

区别

备份范围

pg_dumpall工具可以一个集簇中所有的PostgreSQL数据库写出到(“转储”)一个脚本文件。该脚本文件包含可以用作psql的输入SQL命令来恢复数据库。它会对集簇中的每个数据库调用pg_dump来完成该工作。pg_dumpall还转储对所有数据库公用的全局对象(pg_dump不保存这些对象),也就是说数据库角色和表空间都会被转储。 目前这包括适数据库用户和组、表空间以及适合所有数据库的访问权限等属性。

备份用户

因为pg_dumpall从所有数据库中读取表,所以你很可能需要以一个数据库超级用户的身份连接以便生成完整的转储。同样,你也需要超级用户特权执行保存下来的脚本,这样才能增加角色和组以及创建数据库。

SQL 脚本将被写出到标准输出。使用 -f/--file 选项或者 shell 操作符可以把它重定向到一个文件。

pg_dumpall需要多次连接到PostgreSQL服务器(每个数据库一次)。如果你使用口令认证,可能每次都会要求口令。这种情况下使用一个~/.pgpass会比较方便

pg_dump pg_dumpall
备份范围 最多备份单个数据库 还可以备份所有数据库公用的全局对象,包括适数据库用户和组、表空间以及适合所有数据库的访问权限等属性。
备份用户 普通用户即可 需要超级用户
备份文件格式

多种格式

-Fp 文本

-Fc 

-Fd 目录格式

纯文本
恢复方式 可以使用psql 和 pg_restore恢复 只可以使用psql 恢复

你可能感兴趣的:(PG,postgresql,数据库)