pg_dumpall 是一个用于写出 (“倾倒”)一个数据库集群里的所有 Postgres 数据库到 一个脚本文件的工具.该脚本文件包含可以用于作为 psql 的输入恢复数据库的 SQL 命令. 它通过对数据库集群里的每个数据库调用 实现这个功能. pg_dumpall 还倾倒出所有数据库公用的全局对象. (pg_dump 并不保存这些对象.) 这些信息目前包括数据库用户和组.
因此,pg_dumpall 是备份你的数据库的 一体化解决方案.
因为 pg_dumpall 从所有数据库中读取表, 所以你很可能需要以数据库超级用户的身份联接,这样才能生成完整的倾倒. 同样,你也需要超级用户的权限执行保存下来的脚本,这些才能增加用户和组, 以及创建数据库.
SQL 脚本将写出到标准输出.你应该使用合适的 shell 操作符把它重定向到文件.
pg_dumpall 接受下列命令行参数:
在创建大纲之前清理(删除)数据库.
声明数据库服务器所运行的机器的主机名. 如果主机以斜扛开头,那么就把它用做 Unix 域套接字的目录. 缺省是从 PGHOST 环境变量里拿来的(如果设置了), 否则使用 Unix 域套接字.
服务器监听的端口号. 缺省是 PGPORT 环境变量(如果设置了), 或者是编译时的缺省.
只倾倒全局对象(用户和组),而不倾倒数据库.
任何其它的命令行参数都传递给下层的 调用.这样就可以有效地控制一些输出格式,但是应该避免象 -f, -t,和dbname 这样的参数.