Manpages

NAME

pg_dumpall - 抽 出 一 个 PostgreSQL 数 据 库 集 群 到 脚 本 文 件 中

SYNOPSIS

pg_dumpall [ option... ]

DESCRIPTION 描 述

pg_dumpall 是 一 个 用 于 写 出 ( "转 储 ") 一 个 数 据 库 集 群 里 的 所 有 PostgreSQL 数 据 库 到 一 个 脚 本 文 件 的 工 具 。 该 脚 本 文 件 包 含 可 以 用 于 作 为 psql(1) 的 输 入 恢 复 数 据 库 的 SQL命 令 。 它 通 过 对 数 据 库 集 群 里 的 每 个 数 据 库 调 用 pg_dump(1) 实 现 这 个 功 能 。 pg_dumpall 还 转 储 出 所 有 数 据 库 公 用 的 全 局 对 象 。 ( pg_dump(1) 并 不 保 存 这 些 对 象 。 ) 这 些 信 息 目 前 包 括 数 据 库 用 户 和 组 , 以 及 适 用 于 整 个 数 据 库 的 访 问 权 限 。 因 此 , pg_dumpall 是 备 份 你 的 数 据 库 的 一 体 化 解 决 方 案 。 但 是 请 注 意 它 的 局 限 性 : 它 无 法 转 储 "大 对 象 ", 因 为 pg_dump 无 法 把 这 样 的 对 象 转 储 到 纯 文 本 文 件 中 。 如 果 你 的 数 据 库 里 有 大 对 象 , 那 么 你 应 该 使 用 pg_dump 的 非 文 本 输 出 格 式 之 一 转 储 它 们 。 因 为 pg_dumpall 从 所 有 数 据 库 中 读 取 表 , 所 以 你 很 可 能 需 要 以 数 据 库 超 级 用 户 的 身 份 联 接 , 这 样 才 能 生 成 完 整 的 转 储 。 同 样 , 你 也 需 要 超 级 用 户 的 权 限 执 行 保 存 下 来 的 脚 本 , 这 些 才 能 增 加 用 户 和 组 , 以 及 创 建 数 据 库 。

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

pg_dumpall 需 要 和 PostgreSQL 服 务 器 连 接 多 次 , 可 能 每 次 都 问 你 口 令 。 这 种 情 况 下 写 一 个 $HOME/.pgpass 可 能 会 比 较 方 便 。

OPTIONS 选 项

下 列 命 令 行 参 数 用 于 控 制 输 出 格 式 :

-a

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

-c

--clean 包 括 那 些 重 建 之 前 清 理 ( 删 除 ) 数 据 库 对 象 的 SQL命 令 。

-d

--inserts 把 数 据 当 作 INSERT 命 令 输 出 ( 而 不 是 COPY) 。 这 样 将 令 恢 复 过 程 非 常 缓 慢 , 但 是 会 令 输 出 更 容 易 移 植 到 其 他 SQL 数 据 库 包 中 。

-D

--column-inserts
--attribute-inserts
把 数 据 以 某 种 带 着 明 确 字 段 名 ( INSERT INTO table (column, ...) VALUES ...) 的 INSERT 命 令 形 式 转 储 出 来 。 这 样 会 令 恢 复 非 常 慢 , 但 是 如 果 需 要 重 排 字 段 顺 序 就 是 必 须 的 。

-g

--globals-only 只 转 储 全 局 对 象 ( 用 户 和 组 ) , 而 不 转 储 数 据 库 。

-i

--ignore-version 忽 略 pg_dumpall 和 数 据 库 服 务 器 之 间 的 版 本 差 别 。

pg_dumpall 可 以 处 理 来 自 以 前 版 本 的 PostgreSQL 的 数 据 库 , 但 是 太 老 的 数 据 库 就 不 再 支 持 了 ( 目 前 到 7.0) 。 如 果 你 需 要 覆 盖 版 本 检 查 , 那 么 可 以 使 用 这 个 选 项 ( 如 果 pg_dumpall 失 败 了 , 可 别 说 我 们 没 警 告 你 。 )

-o

--oids 为 每 个 表 转 储 对 象 标 识 符 (

OID) 。 如 果 你 的 应 用 在 某 种 角 度 引 用 了

OID 字 段 , 那 么 使 用 这 个 选 项 ( 比 如 , 在 外 键 约 束 里 ) 。 否 则 , 不 应 该 使 用 这 个 选 项 。

-s

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

-v

--verbose 声 明 冗 余 模 式 。 这 样 将 令 pg_dumpall 向 标 准 错 误 打 印 进 度 信 息 。

-x

--no-privileges
--no-acl
避 免 转 储 访 问 权 限 ( 授 权 /撤 销 命 令 ) 。 下 面 的 命 令 行 参 数 控 制 数 据 库 连 接 参 数 。
-h
host 声 明 数 据 库 服 务 器 所 运 行 的 机 器 的 主 机 名 。 如 果 数 值 以 斜 扛 开 头 , 那 么 就 把 它 用 做 Unix 域 套 接 字 的 目 录 。 缺 省 是 从 PGHOST 环 境 变 量 里 拿 来 的 ( 如 果 设 置 了 ) , 否 则 使 用 Unix 域 套 接 字 。
-p
port 声 明 服 务 器 监 听 的 TCP 端 口 号 或 者 Unix 域 套 接 字 文 件 扩 展 。 缺 省 是 PGPORT 环 境 变 量 ( 如 果 设 置 了 ) , 或 者 是 编 译 时 的 缺 省 。
-U
username 以 给 定 用 户 身 分 联 接 。

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

ENVIRONMENT 环 境

PGHOST

PGPORT

PGUSER 缺 省 连 接 参 数 。

NOTES 注 意

因 为 pg_dumpall 内 部 调 用 pg_dump, 所 以 , 一 些 诊 断 信 息 可 以 参 考 pg_dump。 恢 复 完 之 后 , 我 们 建 议 在 每 个 已 恢 复 的 对 象 上 运 行 ANALYZE。 这 样 优 化 器 就 可 以 得 到 有 用 的 统 计 。 你 也 可 以 用 vacuumdb -a -z 清 理 所 有 数 据 库 。

EXAMPLES 例 子

转 储 所 有 数 据 库 :

$ pg_dumpall > db.out 重 新 载 入 这 个 数 据 库 :

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

SEE ALSO 参 见

pg_dump(1). Check there for details on possible error conditions.

译 者

Postgresql 中 文 网 站 何 伟 平 <laser [AT] pgsqldb.org>

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh