您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

pg_dumpall

Name

pg_dumpall --  抽出所有 PostgreSQL 数据库到脚本文件中。

Synopsis

pg_dumpall [-c | --clean] [-g | --globals-only] [-h host ] [-p port ] [-U username ] [-W]

描述

pg_dumpall 是一个用于写出 ( "转储" )一个数据库集群里的所有 PostgreSQL 数据库到 一个脚本文件的工具.该脚本文件包含可以用于作为 psql 的输入恢复数据库的 SQL 命令. 它通过对数据库集群里的每个数据库调用 pg_dump 实现这个功能. pg_dumpall 还转储出所有数据库公用的全局对象. ( pg_dump 并不保存这些对象.) 这些信息目前包括数据库用户和组.

因此, pg_dumpall 是备份你的数据库的 一体化解决方案.但是请注意它的局限性∶它无法转储 "大对象" ,因为 pg_dump 无法把这样的对象转储到纯文本文件中.如果你的数据库里有大对象, 那么你应该使用 pg_dump 的非文本输出格式 之一转储它们.

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

SQL 脚本将写出到标准输出.你应该使用合适的 shell 操作符把它重定向到文件.

选项

pg_dumpall 接受下列命令行参数:

-c, --clean

包括那些重建之前清理(删除)数据库对象的 SQL 命令. (这个选项没什么用,因为输出脚本本身就会创建数据库本身; 它们在刚创建完之后总是空的.)

-g, --globals-only

只转储全局对象(用户和组),而不转储数据库.

-h host

声明数据库服务器所运行的机器的主机名. 如果主机以斜扛开头,那么就把它用做 Unix 域套接字的目录. 缺省是从 PGHOST 环境变量里拿来的(如果设置了), 否则使用 Unix 域套接字.

-p port

服务器监听的端口号. 缺省是 PGPORT 环境变量(如果设置了), 或者是编译时的缺省.

-U username

以给定用户身分联接.

-W

强制口令提示.如果服务器需要口令认证,那么这个动作应该自动发生.

任何其它的命令行参数都传递给下层的 pg_dump 调用.这样就可以有效地控制一些输出格式,但是应该避免象 -f -t ,和 dbname 这样的参数.

例子

转储所有数据库:


$
 

pg_dumpall > db.out

重载这个数据库,


$
 

psql -f db.out template1

(在这里你和哪个数据库联接并不重要,因为 pg_dumpall 创建的脚本文件将包含合适 的命令用于创建和联接保存的数据库.)

又见

pg_dump psql . 看看哪里获取可能的错误条件的详细信息.