Manpages

NAME

postgres - 以 單 用 戶 模 式 運 行 一 個 PostgreSQL服 務 器

SYNOPSIS

postgres [ -A 0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-level ] [ --describe-config ] [ -D datadir ] [ -e ] [ -E ] [ -f s | i | t | n | m | h ] [ -F ] [ -N ] [ -o filename ] [ -O ] [ -P ] [ -s | -t pa | pl | ex ] [ -S sort-mem ] [ -W seconds ] [ --name=value ] database

postgres [ -A 0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-level ] [ -D datadir ] [ -e ] [ -f s | i | t | n | m | h ] [ -F ] [ -o filename ] [ -O ] [ -p database ] [ -P ] [ -s | -t pa | pl | ex ] [ -S sort-mem ] [ -v protocol ] [ -W seconds ] [ --name=value ]

DESCRIPTION 描 述

可 執 行 程 序 postgres 是 真 正 處 理 查 詢 的 PostgreSQL 服 務 器 進 程 。 通 常 它 是 不 會 被 直 接 調 用 的 ; 而 是 啓 動 一 個 postmaster 多 用 戶 服 務 器 。 上 面 的 第 二 種 形 式 就 是 postmaster(1) 調 用 postgres 的 方 法 ( 只 是 概 念 上 的 , 因 爲 postmaster 和 postgres 實 際 上 是 一 樣 的 程 序 ) ; 我 們 不 能 這 樣 直 接 調 用 它 。 第 一 種 形 式 以 交 互 單 用 戶 模 式 直 接 調 用 該 服 務 器 。 這 種 用 法 的 主 要 用 途 是 在 initdb 做 初 始 化 時 用 。 有 時 候 它 被 用 做 調 試 災 難 性 恢 復 。 當 從 shell 上 以 交 互 模 式 調 用 時 , 用 戶 可 以 輸 入 查 詢 並 且 結 果 會 打 印 在 屏 幕 上 , 不 過 格 式 對 開 發 人 員 更 有 用 , 對 用 戶 卻 差 好 多 。 不 過 請 記 住 , 運 行 一 個 單 用 戶 服 務 器 並 不 適 合 於 調 試 該 服 務 器 , 因 爲 沒 有 實 際 的 進 程 間 通 訊 和 鎖 動 作 發 生 。 當 運 行 一 個 單 用 戶 服 務 器 時 , 將 把 會 話 用 戶 設 置 爲 ID 爲 1 的 用 戶 。 該 用 戶 不 必 實 際 存 在 , 因 此 一 個 獨 立 運 行 的 服 務 器 可 以 用 於 對 某 些 意 外 損 壞 的 系 統 表 中 進 行 手 工 恢 復 。 在 獨 立 運 行 模 式 下 , 系 統 隱 含 地 賦 予 ID 爲 1 的 用 戶 超 級 用 戶 權 限 。

OPTIONS 選 項

如 果 postgres 是 由 一 個 postmaster(1) 啓 動 的 , 那 麼 它 繼 承 後 者 的 所 有 選 項 集 。 另 外 postgres 相 關 的 選 項 可 以 用 -o 開 關 從 postmaster(1) 傳 遞 。 你 可 以 通 過 設 置 一 個 配 置 文 件 來 避 免 鍵 入 這 些 選 項 。 參 閱 Section 16.4獲 取 細 節 。 有 些 ( 安 全 的 ) 選 項 還 可 以 從 聯 接 過 來 的 客 戶 端 設 置 , 這 樣 就 獲 得 了 一 種 應 用 無 關 的 方 法 。 比 如 , 如 果 設 置 了 PGOPTIONS 環 境 變 量 , 那 麼 基 於 libpq 的 客 戶 端 就 都 把 那 個 字 串 傳 遞 給 服 務 器 , 會 解 釋 成 postgres 命 令 行 選 項 。

GENERAL PURPOSE 通 用 用 途 選 項 -A, -B, -c, -d, -D, -F, 和 --namepostmaster(1) 裏 的 有 相 同 的 含 義 。 只 是 -d 0 避 免 postmaster(1) 的 調 試 級 別 傳 播 到 postgres。

-e 把 缺 省 日 期 風 格 設 置 爲

"European", 也 就 是 說 用 "DMY"規 則 解 釋 日 期 輸

入 , 並 且 在 一 些 日 期 輸 出 格 式 裏 日 子 在 月 份 前 面 打 印 。 參 閱 Section 8.5 ’’Date/Time Types’’ 獲 取 更 多 細 節 。

-o filename 把 所 有 服 務 器 日 誌 輸 出 到 filename。 如 果 服 務 器 是 由 postmaster運 行 的 , 則 忽 略 這 個 選 項 , 並 且 使 用 從 postmaster 繼 承 過 來 的 stderr。

-P 掃 描

/更 新 系 統 記 錄 時 忽 略 系 統 表 。 對 系 統 表 /索 引 使 用 REINDEX 時 需 要

這 個 選 項 。

-s 在 每 條 命 令 結 束 時 打 印 時 間 信 息 和 其 他 統 計 信 息 。 這 個 開 關 對 測 試 性 能 和 調 節 緩 衝 區 數 量 有 好 處 。

-S sort-mem 聲 明 內 部 排 序 和 散 列 在 求 助 於 臨 時 磁 盤 文 件 之 前 可 以 使 用 的 內 存 數 量 。 該 值 是 以 KB ( 千 字 節 ) 爲 單 位 的 , 缺 省 是 1024 KB。 注 意 對 於 複 雜 查 詢 , 可 能 有 好 幾 個 並 行 的 排 序 和 /或 散 列 , 而 在 它 們 把 數 據 放 到 臨 時 文 件 前 , 每 個 都 會 允 許 使 用 最 多 sort-mem KB的 內 存 。

OPTIONS FOR STAND-ALONE MODE 單 用 戶 模 式 的 選 項
database
聲 明 要 訪 問 的 數 據 庫 的 名 字 。 如 果 忽 略 掉 則 缺 省 爲 用 戶 名 。

-E 回 顯 所 有 命 令 。

-N 禁 止 把 新 行 作 爲 語 句 分 隔 符 。

SEMI-INTERNAL OPTIONS 半 內 部 選 項 還 有 幾 個 其 他 的 選 項 可 以 聲 明 , 主 要 用 於 調 試 用 途 。 這 些 東 西 在 這 裏 列 出 只 是 給 PostgreSQL 系 統 開 發 人 員 使 用 的 。 我 們 強 烈 反 對 使 用 這 些 選 項 。 另 外 這 些 選 項 的 任 何 一 項 都 可 能 在 未 來 版 本 中 消 失 而 不 加 說 明 。
-f { s | i | m | n | h }
禁 止 某 種 掃 描 和 連 接 方 法 的 使 用 : s 和 i 分 別 關 閉 順 序 和 索 引 掃 描 , 而 n, m, 和 h 分 別 關 閉 嵌 套 循 環 , 融 合 ( merge) 和 散 列 連 接 。

Note: 注 意 : 順 序 掃 描 和 嵌 套 循 環 都 不 可 能 完 全 被 關 閉 。 -fs 和 -fn 選 項 僅 僅 是 在 存 在 其 他 方 法 時 阻 礙 優 化 器 使 用 這 些 方 法 罷 了 。

-O 允 許 修 改 系 統 表 的 結 構 。 這 個 參 數 用 於

initdb

-p database 告 訴 服 務 器 服 務 器 它 是 由 一 個 postmaster 啓 動 的 並 聲 明 要 使 用 的 數 據 庫 等 。
-t pa[rser] | pl[anner] | e[xecutor]
打 印 與 每 個 主 要 系 統 模 塊 相 關 的 查 詢 記 時 統 計 。 它 不 能 和 -s選 項 一 塊 使 用 。
-v
protocol 聲 明 這 次 會 話 使 用 的 前 /服 務 器 協 議 的 版 本 數 。
-W
seconds 一 旦 看 見 這 個 選 項 , 進 程 就 睡 眠 標 出 的 秒 數 。 這 樣 就 給 開 發 者 一 些 時 間 把 調 試 器 附 着 在 該 服 務 器 進 程 上 。
--describe-config
這 個 選 項 以 tab 分 隔 的 COPY 格 式 , 倒 出 服 務 器 內 部 配 置 變 量 , 描 述 和 缺 省 之 。 設 計 它 主 要 是 給 管 理 工 具 使 用 。

ENVIRONMENT 環 境

PGDATA 缺 省 數 據 目 錄 位 置 對 於 其 它 的 在 單 用 戶 模 式 裏 有 一 點 點 影 響 的 環 境 變 量 , 請 參 閱

postmaster(1).

NOTES 注 意

要 停 止 運 行 一 個 查 詢 , 使 用 SIGINT 給 正 在 運 行 該 命 令 的 postgres 進 程 發 信 號 。 要 告 訴 postgres 重 新 讀 取 配 置 文 件 , 使 用 一 個 SIGHUP 信 號 。 通 常 我 們 最 好 給 postmaster 發 送 SIGHUP; postmaster 將 隨 後 SIGHUP 他 的 每 個 子 進 程 。 但 是 有 時 候 我 們 可 能 想 只 讓 一 個 postgres 進 程 重 裝 載 配 置 文 件 。

postmaster 使 用 SIGTERM 告 訴 postgres進 程 正 常 退 出 , 而 SIGQUIT 是 不 經 過 正 常 清 理 的 退 出 。 這 些 信 號 不 應 該 由 用 戶 使 用 。 給 一 個 postgres 進 程 發 送 SIGKILL 也 是 不 明 智 的 : postmaster 將 把 這 個 信 號 解 釋 成 一 次 在 postgres 裏 的 崩 潰 , 並 且 會 強 制 所 有 他 的 子 postgres 進 程 像 在 一 個 標 準 的 崩 潰 - 恢 復 過 程 裏 一 樣 退 出 。

USAGE 用 法

用 下 面 這 樣 的 命 令 啓 動 一 個 獨 立 的 服 務 器

postgres -D /usr/local/pgsql/data other-options my_database 用 -D 給 服 務 器 提 供 正 確 的 數 據 庫 目 錄 的 路 徑 , 或 者 確 保 環 境 變 量 PGDATA 已 經 正 確 設 置 。 同 時 還 要 聲 名 你 象 用 的 特 定 數 據 庫 名 字 。 通 常 , 獨 立 運 行 的 服 務 器 把 換 行 符 當 做 命 令 輸 入 完 成 字 符 ; 它 還 不 懂 分 號 的 作 用 , 因 爲 那 些 東 西 是 在 psql(1) 裏 的 。 要 想 把 一 行 分 成 多 行 寫 , 你 必 需 在 除 最 後 一 個 換 行 符 以 外 的 每 個 換 行 符 前 面 敲 一 個 反 斜 槓 。 但 是 如 果 你 使 用 -N 命 令 行 開 關 , 那 麼 換 行 符 就 不 會 中 止 命 令 輸 入 。 服 務 器 將 從 標 準 輸 入 讀 取 數 據 , 直 到 碰 到 文 件 結 尾 ( EOF) , 然 後 把 輸 入 當 做 一 個 單 個 的 命 令 字 串 處 理 。 這 個 時 候 反 斜 槓 -換 行 符 就 不 再 當 做 特 殊 情 況 處 理 。 要 退 出 會 話 , 鍵 入 EOF (通 常 是 Control+D)。 如 果 你 已 經 使 用 了 -N, 需 要 用 兩 個 連 續 的 EOF來 退 出 。 請 注 意 獨 立 運 行 的 服 務 器 不 會 提 供 複 雜 的 行 編 輯 功 能 ( 比 如 , 沒 有 命 令 行 歷 史 ) 。

SEE ALSO 參 見

initdb(1), ipcclean(1), postmaster(1)

譯 者

Postgresql 中 文 網 站 何 偉 平 <laser [AT] pgsqldb.org>

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh