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