↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 6.5 / 6.4
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

pg_dumpall

pg_dumpall — 把所有 PostgreSQL 数据库抽取到一个脚本文件

大纲

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

指定数据库 服务器所在机器的主机名。如果 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。 可能的错误条件的详情请 查阅它们。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。