Man page - pg_dumpall(1)

Manual

PG_DUMPALL

NAME
SYNOPSIS
DESCRIPTION 描 述
OPTIONS 选 项
ENVIRONMENT 环 境
NOTES 注 意
EXAMPLES 例 子
SEE ALSO 参 见
译 者


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@pgsqldb.org>

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