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

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

不受支持的版本: 6.5 / 6.4
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

pg_dump

pg_dump — Extract a Postgres database into a script file

大纲

pg_dump [ dbname ]
pg_dump [ -h host ] [ -p port ]
    [ -t table ]
    [ -f outputfile ]
    [ -a ] [ -d ] [ -D ] [ -o ] [ -s ] [ -u ] [ -v ] [ -z ]
    [ dbname ]

输入

pg_dump 接受下列命令行参数:

dbname

指定要抽取的数据库名称。dbname 默认为 USER 环境变量的值。

-a

只转储数据,不转储模式(定义)。

-d

将数据转储为正规的插入字符串。

-D

将数据转储为带属性名的插入

-f filename

指定输出文件。默认为 stdout。

-n

除非绝对必要,抑制标识符周围的双引号。如果标识符中使用了保留字,这可能导致装载这份转储数据时出问题。

-o

为每个表转储对象标识符(OID)。

-s

只转储模式(定义),不转储数据。

-t table

只转储 table 的数据。

-u

使用密码认证。提示输入用户名和密码。

-v

指定详细模式

-z

包含 ACL(grant/revoke 命令)和表所有权信息。

pg_dump 还接受下列用于连接参数的命令行参数:

-h host

指定运行 postmaster 的机器的主机名。默认使用本地 Unix 域套接字而不是 IP 连接。。

-p port

指定 postmaster 正在监听连接的 Internet TCP/IP 端口,或本地 Unix 域套接字文件扩展名。端口号默认为 5432, 或 PGPORT 环境变量的值(如果已设置)。

-u

使用密码认证。提示输入 username 和 password。

输出

pg_dump 会创建一个文件或写入 stdout。

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'?

pg_dump 无法连接到指定主机和端口上的 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_dump 内部执行 SELECT 语句。如果在运行 pg_dump 时遇到问题,请确保你能够使用例如 psql 从数据库中选择信息。

描述

pg_dump 是一个把 Postgres 数据库转储为包含查询命令的脚本文件的工具。脚本文件为文本格式,可用于重建数据库,甚至是在其他机器和其他架构上。pg_dump 会产生重新生成所有用户定义类型、函数、表、索引、聚合和操作符所需的查询。此外,所有数据都以文本格式复制出来,因此既可以方便地重新复制进去,也可以导入编辑工具。

pg_dump 可用于转储数据库的内容,以便从一个 Postgres 安装迁移到另一个安装。运行 pg_dump 之后,应当检查输出脚本文件中是否有任何警告,尤其是考虑到下面列出的限制。

注意

pg_dump 有一些限制。这些限制大多源于难以从系统目录中抽取某些元信息。

部分索引

pg_dump 不理解部分索引。原因同上;部分索引谓词是以计划形式存储的。

大对象

pg_dump 不处理大对象。大对象会被忽略,必须手工处理。

用法

要转储一个与用户同名的数据库:

% pg_dump > db.out

要重新装载这个数据库:

psql -e database < db.out

提交更正

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