NAME
postmaster - PostgreSQL多 用 戶 數 據 庫 服 務 器
SYNOPSIS
postmaster [ -A 0 | 1 ] [ -B nbuffers ] [ -c name=value ] [ -d debug-level ] [ -D datadir ] [ -F ] [ -h hostname ] [ -i ] [ -k directory ] [ -l ] [ -N max-connections ] [ -o extra-options ] [ -p port ] [ -S ] [ --name=value ] [ -n | -s ]
DESCRIPTION 描 述
postmaster 是 PostgreSQL 多 用 戶 數 據 庫 服 務 器 。 一 個 客 戶 端 爲 了 訪 問 一 個 數 據 庫 , 它 ( 通 過 網 絡 或 本 地 ) 聯 接 到 一 個 運 行 着 的 postmaster。 然 後 該 postmaster 啓 動 一 個 獨 立 的 服 務 器 進 程 ( "postgres") 以 操 作 聯 接 。 postmaster 還 控 制 服 務 器 進 程 之 間 的 通 訊 。 缺 省 時 postmaster在 前 臺 啓 動 並 且 向 標 準 錯 誤 系 統 輸 出 打 印 日 誌 信 息 。 在 實 際 應 用 裏 , postmaster應 該 作 爲 後 臺 進 程 啓 動 , 也 許 該 在 啓 動 時 。 一 個 postmaster總 是 管 理 來 自 同 一 個 數 據 庫 集 羣 的 數 據 。 一 個 數 據 庫 集 羣 是 一 套 在 同 一 個 文 件 系 統 位 置 存 放 數 據 的 數 據 庫 。 當 postmaster 啓 動 時 , 它 需 要 知 道 數 據 庫 集 羣 文 件 ( "數 據 區 ") 的 位 置 。 這 個 參 數 是 通 過 傳 遞 -D 命 令 行 選 項 或 者 PGDATA 環 境 變 量 實 現 的 , 沒 有 缺 省 值 。 一 個 系 統 上 同 時 可 以 運 行 幾 個 postmaster 進 程 , 只 要 他 們 使 用 不 同 的 數 據 區 和 不 同 的 端 口 號 ( 見 下 文 ) 。 一 個 數 據 區 是 用 initdb(1) 創 建 的 。
OPTIONS 選 項
postmaster 接 受 下 列 命 令 行 參 數 。 關 於 這 些 選 項 的 更 詳 細 的 討 論 請 參 考 Section 16.4 ’’Run-time Configuration’’。 你 也 可 以 通 過 設 置 一 個 配 置 文 件 來 減 少 敲 擊 這 些 選 項 。
-A 0|1 打 開 運 行 時 斷 言 檢 查 , 是 檢 測 編 程 錯 誤 的 調 試 幫 助 。 只 有 在 編 譯 時 打 開 了 它 , 你 才 能 使 用 它 。 如 果 編 譯 時 打 開 了 , 缺 省 是 打 開 。 |
-B nbuffers
爲 服 務 器 進 程
分 配 和 管 理 的
共 享 內 存 緩 衝
區 數 量 。 此 值
缺 省 爲 64 個 緩 衝
區 , 每 個 緩 衝
區 是 8k 字 節 。
-c name=value 設 置
一 個 命 名 的 運
行 時 參 數 。 參
考 Section 16.4 ’’Run-time
Configuration’’ 獲 取 列
表 和 描 述 。 大
多 數 其 他 命 令
行 選 項 實 際 上
都 是 這 樣 的 參
數 賦 值 的 短 形
式 。 -c 可 以 出 現
多 次 用 以 設 置
多 個 參 數 。
-d debug-level 設 置 調
試 級 別 。 數 值
越 高 , 寫 到 服
務 器 日 誌 的 調
試 輸 出 越 多 。
數 值 範 圍 是 1 到
5。
-D datadir 聲 明 數 據
目 錄 的 文 件 系
統 路 徑 。 參 閱
上 文 的 討 論 。
-F 關 閉 |
fsync 調 用 , 提 高 性 能 , 但 是 要 冒 系 統 崩 潰 時 數 據 毀 壞 的 風 險 。 |
這 個 選 項 對 應 於 在 postgresql.conf 中 設 置 fsync=false。 在 使 用 之 前 閱 讀 詳 細 文 檔 !
--fsync=true 有 着 這 個 選 項 的 反 面 效 果 。
-h hostname 聲 明 postmaster 偵 聽 着 等 待 來 自 前 端 應 用 聯 接 的 TCP 主 機 名 或 地 址 。 它 缺 省 偵 聽 所 有 配 置 了 的 地 址 ( 包 括 localhost) 。
-i 這 個 選 項 打 開 |
TCP/IP ( 網 際 域 套 接 字 ) 通 訊 。 沒 有 這 個 選 項 , 只 能 進 |
行 本 地 Unix 域 套 接 字 通 訊 。 這 個 選 項 等 效 於 在 postgresql.conf 中 設 置 tcpip_socket=true。
--tcpip-socket=false 是 這 個 選 項 的 相 反 的 作 用 。
-k directory 指 定 postmaster 偵 聽 等 待 來 自 前 端 應 用 聯 接 的 Unix 域 套 接 字 的 位 置 。 缺 省 通 常 是 /tmp, 但 是 可 以 在 編 譯 的 時 候 修 改 。
-l 這 個 選 項 打 開 用 |
SSL 進 行 的 安 全 通 訊 。 同 樣 還 需 要 -i 選 項 。 要 使 用 |
這 個 選 項 , 編 譯 時 你 必 須 打 開 了 SSL 選 項 。
-N
max-connections 設 置 postmaster允
許 啓 動 的 服 務
器 服 務 器 的 最
大 數 目 。 缺 省
配 置 時 , 該 值
爲 32, 如 果 你 的
系 統 能 支 持 更
多 進 程 , 該 值
最 大 可 以 設 置
爲 你 的 系 統 所
能 支 持 的 極 限
。 時 修 改 ( 參
閱 src/include/config.h) 。 (
請 注 意 -B 選 項 要
求 至 少 是 兩 倍
-N。 參 閱 Section 16.5
’’Managing Kernel Resources’’
獲 取 有 關 大 客
戶 量 的 系 統 資
源 需 求 的 信 息
。 )
-o extra-options 在 extra-options 裏
聲 明 的 postgres 選 項
都 傳 遞 給 所 有
由 這 個 postmaster 啓 動
的 服 務 進 程 。
參 閱 postgres(1) 獲 取
可 能 選 項 。 如
果 選 項 字 串 包
含 任 何 空 白 ,
整 個 字 串 必 須
引 起 來 。
-p port 指 定 postmaster
偵 聽 着 等 待 客
戶 端 應 用 連 接
的 互 聯 網 TCP/IP 端 口
或 一 個 本 地 Unix 域
套 接 字 文 件 擴
展 ( 描 述 符 )
。 缺 省 的 端 口
號 是 環 境 變 量 PGPORT
的 值 。 如 果 沒
有 設 置 PGPORT 缺 省 是
PostgreSQL 編 譯 時 建 立
的 值 ( 通 常 是
5432) 。 如 果 你 聲
明 瞭 一 個 非 缺
省 端 口 , 那 麼
所 有 前 端 應 用
( 包 括 psql) 都 必
須 用 命 令 行 選
項 或 者 PGPORT 聲 明 同
一 個 端 口 。
-S 指 明 |
postmaster 進 程 將 以 安 靜 模 式 啓 動 。 也 就 是 說 , 它 將 與 用 戶 的 ( |
控 制 ) tty 脫 離 並 且 啓 動 其 自 身 的 進 程 組 。 並 且 它 把 標 準 輸 出 和 標 準 錯 誤 重 定 向 到 /dev/null。 使 用 這 個 開 關 會 將 日 誌 輸 出 都 丟 棄 , 可 能 不 是 你 希 望 的 , 因 爲 這 樣 令 錯 誤 查 找 非 常 困 難 。 參 閱 下 文 獲 取 一 個 在 後 臺 啓 動 postmaster 的 更 好 的 方 法 。
--silent-mode=false 的 作 用 和 這 個 選 項 的 效 果 正 好 相 反 。
--name=value 設 置 一 個 命 名 的 運 行 時 參 數 ; 其 縮 寫 形 式 是 -c。 有 兩 個 額 外 的 命 令 行 選 項 可 以 用 於 調 試 導 致 服 務 器 異 常 退 出 。 用 於 這 種 狀 況 的 一 般 策 略 是 通 知 所 有 其 它 服 務 器 必 須 退 出 , 然 後 重 新 初 始 化 共 享 內 存 和 信 號 燈 。 這 是 因 爲 一 個 出 錯 的 服 務 器 在 退 出 前 可 能 已 經 破 壞 了 一 些 共 享 的 狀 態 。 這 些 選 項 控 制 這 種 環 境 下 的 postmaster 的 性 質 , 而 且 沒 有 哪 個 選 項 是 爲 普 通 操 作 準 備 的 。 這 些 特 殊 選 項 是 :
-n |
postmaster 將 不 會 重 新 初 始 化 共 享 數 據 結 構 。 一 個 有 經 驗 的 系 統 程 序 員 這 時 就 可 以 使 用 調 試 器 檢 查 共 享 內 存 和 信 號 燈 狀 態 。 | ||
-s |
postmaster 將 通 過 發 送 信 號 SIGSTOP 停 止 所 有 其 他 服 務 器 進 程 , 但 不 會 導 致 它 們 退 出 。 這 樣 就 允 許 系 統 程 序 員 手 工 從 所 有 服 務 器 進 程 收 集 傾 倒 的 核 心 ( core dumps) 。 |
ENVIRONMENT 環 境
PGCLIENTENCODING 客 戶 端 使 用 的 確 缺 省 字 符 編 碼 。 ( 客 戶 端 可 以 獨 立 地 覆 蓋 這 個 。 ) 這 個 值 也 可 以 在 配 置 文 件 裏 設 置 。
PGDATA 缺 省 數 據 目 錄 位 置 |
PGDATESTYLE 運 行 時 參 數 datestyle的 缺 省 值 。 ( 不 再 建 議 使 用 環 境 變 量 )
PGPORT 缺 省 端 口 ( 最 好 在 配 置 文 件 中 設 置 ) |
|||
TZ 服 務 器 時 區 |
|||
其 它 其 它 環 境 變 量 可 以 用 於 指 定 可 選 地 數 據 存 儲 位 置 。 參 閱 |
Section 18.5 |
’’Managing Databases’’ 獲 取 更 多 信 息 。
DIAGNOSTICS 診 斷
一 個 提 到 了 semget 或 者 shmget 的 錯 誤 信 息 可 能 意 味 着 你 需 要 配 置 你 的 內 核 , 提 供 足 夠 的 共 享 內 存 和 信 號 燈 。 更 多 討 論 , 參 閱 Section 16.5 ’’Managing Kernel Resouces’’ 。
Tip: 提 示 : 你 也 可 以 通 過 降 低 shared_buffers 的 參 數 以 減 少 PostgreSQL的 共 享 內 存 的 消 耗 , 或 者 降 低 max_connections的 參 數 減 少 PostgreSQL的 信 號 燈 的 消 耗 , 以 此 可 以 推 遲 重 新 配 置 內 核 。 如 果 是 一 個 說 另 外 一 個 postmaster 正 在 運 行 的 錯 誤 信 息 , 那 你 應 該 確 保 沒 有 其 他 的 postmaster 進 程 正 在 運 行 。 判 斷 這 個 情 況 的 最 簡 單 的 辦 法 是 使 用 命 令
$ ps ax | grep postmaster 或
$ ps -ef | grep postmaster 具 體 使 用 哪 種 取 決 於 你 的 系 統 。 如 果 確 信 沒 有 衝 突 的 postmaster 在 運 行 , 那 麼 你 可 以 刪 除 消 息 裏 提 到 的 鎖 文 件 然 後 再 次 運 行 。 一 個 說 無 法 綁 定 端 口 的 錯 誤 信 息 可 能 表 明 該 端 口 已 經 背 其 它 非 PostgreSQL 進 程 使 用 。 如 果 你 終 止 postmaster後 又 馬 上 用 同 一 個 端 口 運 行 它 , 你 也 有 可 能 得 到 這 個 錯 誤 信 息 ; 這 時 , 你 必 須 多 等 幾 秒 , 等 操 作 系 統 關 閉 了 該 端 口 後 再 試 。 最 後 , 如 果 你 使 用 了 一 個 操 作 系 統 認 爲 是 保 留 的 端 口 , 也 可 能 導 致 這 個 錯 誤 信 息 。 例 如 , 我 的 Unix 版 本 認 爲 低 於 1024 的 端 口 號 是 "可 信 任 的 ", 因 而 只 有 Unix 超 級 用 戶 可 以 使 用 它 們 。
NOTES 注 意
如 果 有 可 能 , 不 要 使 用 SIGKILL殺 死 postmaster。 這 樣 會 阻 止 postmaster在 退 出 前 釋 放 它 持 有 的 系 統 資 源 ( 例 如 共 享 內 存 和 信 號 燈 ) 。 要 正 常 結 束 postmaster, 可 以 使 用 信 號 SIGTERM, SIGINT, 或 SIGQUIT。 第 一 個 信 號 將 等 待 所 有 的 客 戶 端 退 出 後 才 退 出 。 第 二 個 將 強 制 斷 開 所 有 客 戶 端 , 而 第 三 個 將 不 停 止 立 刻 退 出 , 導 致 在 重 起 時 的 恢 復 運 行 。 工 具 命 令 pg_ctl(1) 可 以 用 於 安 全 而 有 效 地 啓 停 postmaster。 選 項 -- 在 FreeBSD或 者 OpenBSD上 無 法 運 行 。 應 該 用 -c。 這 在 受 影 響 的 系 統 裏 是 個 臭 蟲 ; 如 果 這 個 毛 病 沒 有 修 補 好 , 將 來 的 PostgreSQL 版 本 將 提 供 一 個 繞 開 的 辦 法 。
EXAMPLES 例 子
用 缺 省 值 在 後 臺 啓 動 postmaster, 鍵 入 :
$ nohup postmaster >logfile 2>&1 </dev/null & 以 指 定 的 端 口 啓 動 postmaster:
$ postmaster -p 1234 這 條 命 令 將 在 端 口 1234 啓 動 postmaster。 爲 了 用 psql與 這 個 postmaster 聯 接 , 你 應 該 這 麼 運 行 psql run it as
$ psql -p 1234 或 者 設 置 環 境 變 量 PGPORT:
$ export
PGPORT=1234
$ psql 命 名 的 運 行
時 參 數 可 以 用
下 列 的 風 格 之
一 設 置 :
$ postmaster
-c sort_mem=1234
$ postmaster --sort-mem=1234 兩 種
形 式 都 覆 蓋 那
些 現 有 的 在 postgresql.conf
裏 面 的 sort_mem 的 設
置 。 請 注 意 在
參 數 名 裏 的 下
劃 線 在 命 令 行
上 可 以 寫 成 下
劃 線 , 也 可 以
寫 成 劃 線 。
Tip: 提 示 : 除 了 用 於 短 期 的 實 驗 以 外 , 更 好 的 習 慣 是 編 輯 放 在 postgresql.conf 裏 面 的 設 置 , 而 不 是 倚 賴 命 令 行 開 關 設 置 參 數 。
SEE ALSO 參 見
譯 者
Postgresql 中 文 網 站 何 偉 平 <laser [AT] pgsqldb.org>
跋
本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh