Man page - postmaster(1)
Manual
POSTMASTER
NAMESYNOPSIS
DESCRIPTION 描 述
OPTIONS 選 項
ENVIRONMENT 環 境
DIAGNOSTICS 診 斷
NOTES 注 意
EXAMPLES 例 子
SEE ALSO 參 見
譯 者
跋
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 參 見
initdb (1), pg_ctl (1)
譯 者
Postgresql 中 文 網 站 何 偉 平 <laser@pgsqldb.org>
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh