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