本文主要是介绍【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】pg_dump与pg_dumpall区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!