pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
pg_dump — Extract a Postgres database into a script file
pg_dump [dbname] pg_dump [ -hhost] [ -pport] [ -ttable] [ -foutputfile] [ -a ] [ -d ] [ -D ] [ -o ] [ -s ] [ -u ] [ -v ] [ -z ] [dbname]
pg_dump 接受下列命令行参数:
dbname指定要抽取的数据库名称。dbname 默认为 USER 环境变量的值。
只转储数据,不转储模式(定义)。
将数据转储为正规的插入字符串。
将数据转储为带属性名的插入
filename指定输出文件。默认为 stdout。
除非绝对必要,抑制标识符周围的双引号。如果标识符中使用了保留字,这可能导致装载这份转储数据时出问题。
为每个表转储对象标识符(OID)。
只转储模式(定义),不转储数据。
table只转储 table 的数据。
使用密码认证。提示输入用户名和密码。
指定详细模式
包含 ACL(grant/revoke 命令)和表所有权信息。
pg_dump 还接受下列用于连接参数的命令行参数:
host指定运行 postmaster 的机器的主机名。默认使用本地 Unix 域套接字而不是 IP 连接。。
port指定 postmaster 正在监听连接的 Internet TCP/IP 端口,或本地 Unix 域套接字文件扩展名。端口号默认为 5432, 或 PGPORT 环境变量的值(如果已设置)。
使用密码认证。提示输入 username 和 password。
pg_dump 会创建一个文件或写入 stdout。
port'?pg_dump 无法连接到指定主机和端口上的 postmaster 进程。如果你看到这条消息,请确保 postmaster 运行在正确的主机上,并且你指定了正确的端口。如果你的站点使用认证系统,请确保你已获得所需的认证凭据。
dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow'你在关系 pg_shadow 中没有有效的条目,将不被允许访问 Postgres。请联系你的 Postgres 管理员。
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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。