首页 > 数据库 > PostgreSQL > 正文

PostgreSQL7.0手册-用户手册-20. 应用 - pg_dumpall

2019-09-08 23:33:30
字体:
来源:转载
供稿:网友
pg_dumpall
名称
pg_dumpall ―抽出所有 Postgres 数据库到脚本文件中。 

语法
pg_dumpall
pg_dumpall [ -h host ] [ -p port ] [ -a ] [ -d ] [ -D ] [ -O ] [ -s ] [ -u ] [ -v ] [ -x ]

输入
pg_dumpall 接受下面的命令行参数: 
-a 
只输出数据,不输出表结构(定义). 
-d 
将数据输出为合适的插入字串. 
-D 
将数据输出为带字段名的插入(语句). 
-n 
除必须的以外,禁用标识符周围的双引号.如果标识符有保留字,这样做可能会在装载输出的数据时引起麻烦. 
-o 
为每个表输出对象标识(OID). 
-s 
只输出表结构(定义),不输出数据. 
-u 
使用口令认证.提示输入用户名和口令. 
-v 
声明冗余模式 
-x 
避免输出 ACL(赋予/撤消 命令)和表的所有者关系信息. 
pg_dumpall 还接受下面的命令行参数用于联接参数: 
  
-h host 
声明 postmaster 运行的机器的主机名.缺省的使用一个本地Unix 主控套接字而不是一个 IP 联接. 
-p port 
声明 postmaster 在侦听联接的TCP/IP 端口号或一个本地的Unix主控套接字文件句柄.缺省的端口号是5432,或者是环境变量 PGPORT 的值(如果存在的话). 
-u 
使用口令认证.提示输入 username 和 password. 

输出
pg_dumpall 将创建一个文件或输出到(标准输出) stdout。 
  
Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'? 
pg_dumpall 不能与指定的主机和端口号上的 postmaster 进程联接.如果看到这条信息,确认 postmaster 正在正确的主机上你指定的端口运行.如果你的节点使用一个认证系统,确认你已经获得了通过认证所需的信息. 
Connection to database 'dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow' 
你在 pg_shadow 和 的关系中没有有效的记录,因而不被允许访问 Postgres.请与你的 Postgres 管理员联系. 
dumpSequence(table): SELECT failed 
你没有读数据库的权限.请与你的 Postgres 节点管理员联系. 
注意:pg_dumpall 内部使用了 SELECT 语句.如果你运行 pg_dumpall 出现了问题,,确认你可以使用像 psql 这样的工具从数据库中选择数据.

描述
pg_dumpall 是一个用于将所有 Postgres 数据库输出到一个文件中去的应用程序.它同时还输出全局表 pg_shadow .pg_dumpall 里包含一些语句可以在装载数据之前自动创建每一个输出的数据库. 
pg_dumpall 拥有所有的 pg_dump 选项,但是 -f,-t和 dbname 应该被忽略掉. 

请参考 pg_dump 获取这些功能的更多信息.

用法
输出所有数据库: 
% pg_dumpall > db.out

小技巧:你可以将大多数 pg_dump 的选项用于 pg_dumpall.
重新装载这个数据库: 
% psql -e template1 < db.out

小技巧:重新装载时,你可以使用大多数 psql 选项.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选