NAME
pg_ctl - 啓 動 , 停 止 和 重 啓 PostgreSQL 服 務 器
SYNOPSIS
pg_ctl start [ -w ] [ -s ] [ -D datadir ] [ -l filename ] [ -o options ] [ -p path ]
pg_ctl stop [ -W ] [ -s ] [ -D datadir ] [ -m s[mart] | f[ast] | i[mmediate] ]
pg_ctl restart [ -w ] [ -s ] [ -D datadir ] [ -m s[mart] | f[ast] | i[mmediate] ] [ -o options ]
pg_ctl reload [ -s ] [ -D datadir ]
pg_ctl status [ -D datadir ]
DESCRIPTION 描 述
pg_ctl 是 一 個 用 於 啓 動 , 停 止 , 或 者 重 起 PostgreSQL 後 端 服 務 器 ( postmaster) , 或 者 顯 示 一 個 運 行 着 的 服 務 器 的 狀 態 的 工 具 , 儘 管 我 們 可 以 手 動 啓 動 服 務 器 , 但 是 pg_ctl 封 裝 了 重 新 定 向 日 誌 輸 出 , 與 終 端 和 進 程 組 合 理 分 離 , 以 及 另 外 提 供 了 一 個 選 項 用 於 有 控 制 的 關 閉 。 在 start 模 式 裏 會 啓 動 一 個 新 的 服 務 器 。 服 務 器 是 在 後 臺 啓 動 的 , 標 準 輸 入 被 附 着 到 了 /dev/null 上 。 如 果 使 用 了 -l, 那 麼 標 準 輸 出 和 標 準 錯 誤 被 定 向 到 一 個 日 誌 文 件 , 要 麼 就 是 重 新 定 向 到 pg_ctl 的 標 準 輸 出 ( 而 不 是 標 準 錯 誤 ) 。 如 果 沒 有 選 定 日 誌 文 件 , pg_ctl 的 標 準 輸 出 應 該 重 新 定 向 到 一 個 文 件 或 者 用 管 道 輸 出 到 另 外 一 個 進 程 , 比 如 那 些 日 誌 旋 轉 程 序 , 否 則 , postmaster 將 把 它 的 輸 出 寫 到 控 制 終 端 ( 在 後 臺 ) 並 且 將 不 會 脫 離 shell 的 進 程 組 。 在 stop 模 式 下 , 那 個 正 在 特 定 數 據 目 錄 運 行 的 服 務 器 被 關 閉 。 你 可 以 用 -m 選 項 選 擇 三 種 不 同 的 關 閉 模 式 : "Smart" 模 式 等 待 所 有 客 戶 端 中 斷 聯 接 。 這 個 是 缺 省 。 "Fast" 模 式 並 不 等 待 客 戶 端 中 斷 聯 接 。 所 有 活 躍 事 務 都 被 回 捲 並 且 客 戶 端 都 強 制 斷 開 。 "Immediate" 模 式 將 在 沒 有 乾 淨 關 閉 的 情 況 下 退 出 。 這 麼 做 將 導 致 在 重 新 啓 動 的 時 候 的 恢 復 。
restart 實 際 上 是 先 執 行 一 個 停 止 , 然 後 緊 跟 一 個 啓 動 。 它 允 許 變 換 postmaster 命 令 行 的 選 項 。
reload 模 式 簡 單 地 給 postmaster 發 送 一 個 SIGHUP 信 號 , 導 致 它 重 新 讀 取 她 的 配 置 文 件 ( postgresql.conf, pg_hba.conf 等 等 ) 這 樣 就 允 許 修 改 配 置 文 件 選 項 而 不 用 完 全 重 啓 系 統 來 使 之 生 效 。
status 模 式 監 查 一 個 服 務 器 是 否 在 指 定 的 數 據 目 錄 運 行 , 如 果 是 , 那 麼 顯 示 其 PID 和 調 用 它 的 命 令 行 選 項 。
OPTIONS 選 項
-D
datadir 聲 明 該 數 據
庫 文 件 的 文 件
系 統 位 置 。 如
果 忽 略 這 個 選
項 , 使 用 環 境
變 量 PGDATA。
-l filename 把 服 務 器
日 誌 輸 出 附 加
在 filename 文 件 上 。
如 果 該 文 件 不
存 在 , 那 麼 創
建 它 。 umask設 置 爲
077, 因 此 缺 省 時
是 不 允 許 從 其
它 用 戶 向 日 志
文 件 訪 問 的 。
-m mode 聲 明 關 閉
模 式 。 mode 可 以 是
smart, fast, 或 者 immediate, 或
者 是 這 三 個 之
一 的 第 一 個 字
母 。
-o options 聲 明 要 直
接 傳 遞 給 postmaster
的 選 項 。 參 數
通 常 都 用 單 或
者 雙 引 號 包 圍
以 保 證 它 們 作
爲 一 個 整 體 傳
遞 。
-p path 聲 明 postmaster 可
執 行 文 件 的 位
置 。 缺 省 時 postmaster
是 從 和 pg_ctl 相 同 的
目 錄 取 出 , 如
果 不 是 , 那 麼
就 是 寫 死 的 安
裝 目 錄 。 除 非
你 想 幹 點 什 麼
特 別 的 事 情 ,
並 且 得 到 類 似
沒 有 找 到 postmaster這
樣 的 錯 誤 , 否
則 沒 有 必 要 使
用 這 個 選 項 。
-s 只 打 印 錯 誤 , 而 不 打 印 提 示 性 信 息 。 |
||
-w 等 待 啓 動 或 者 關 閉 的 完 成 。 在 |
60 秒 後 超 時 。 這 個 參 數 是 關 閉 時 的 缺 省 值 。 成 功 的 關 閉 是 以 刪 除 PID 文 件 爲 標 誌 的 。 對 於 啓 動 而 言 , 一 次 成 功 的 psql -l 就 標 誌 着 成 功 。 pg_ctl 將 視 圖 使 用 對 psql 合 適 的 端 口 , 如 果 存 在 環 境 變 量 PGPORT, 那 麼 用 它 。 否 則 , 它 將 查 找 看 看 在 postgresql.conf 文 件 裏 面 是 否 設 置 了 一 個 端 口 。 如 果 都 沒 有 , 它 將 使 用 PostgreSQL 編 譯 時 的 缺 省 端 口 ( 缺 省 是 5432) 。
-W 不 等 待 啓 動 或 者 停 止 的 完 成 。 這 是 啓 動 和 重 起 的 缺 省 。 |
ENVIRONMENT 環 境
PGDATA 缺 省 數 據 目 錄 位 置 |
||
PGPORT |
psql(1) 的 缺 省 端 口 ( 由 -w 選 項 使 用 ) 。 其 它 的 環 境 變 量 , 參 閱 postmaster(1).
FILES 文 件
postmaster.pid
這 個 文 件 存 在
於 數 據 目 錄 中
是 爲 了 幫 助 pg_ctl 判
斷 服 務 器 當 前
是 否 在 運 行 。
postmaster.opts.default 如 果 這
個 文 件 存 在 於
數 據 目 錄 ,
pg_ctl( 在 start 模
式 下 ) 將 把 文
件 地 內 容 當 作
傳 遞 給 postmaster 命
令 的 選 項 傳 遞
過 去 , 除 非 被
-o 選 項 覆 蓋 。
postmaster.opts 如 果 這 個
文 件 存 在 於 數
據 目 錄 , pg_ctl(
在 start 模 式 下 )
將 把 文 件 地 內
容 當 作 傳 遞 給
postmaster 命 令 的 選
項 傳 遞 過 去 ,
除 非 被 -o 選 項
覆 蓋 。 這 個 文
件 的 內 容 也 會
在 status 模 式 裏 顯 示
出 來 。
postgresql.conf 這 個 文 件
在 數 據 目 錄 中
, 會 分 析 它 以
查 找 和 psql 一 起 用
的 合 適 的 端 口
( 在 start 模 式 裏 給
出 -w 的 時 候 。 )
NOTES 注 意
等 待 完 全 啓 動 還 不 是 一 個 定 義 得 很 完 整 的 操 作 , 如 果 訪 問 控 制 設 置 爲 本 地 客 戶 端 在 沒 有 手 工 交 互 的 情 況 下 不 能 訪 問 的 話 還 可 能 會 失 效 。 ( 比 如 , 口 令 認 證 ) 。
EXAMPLES 例 子
STARTING THE SERVER 啓 動 服 務 器 啓 動 服 務 器 :
$ pg_ctl start 啓 動 服 務 器 的 一 個 例 子 , 等 到 服 務 器 啓 動 了 才 退 出 :
$ pg_ctl -w start 用 於 一 個 postmaster 使 用 端 口 5433, 而 且 不 帶 fsync 運 行 , 使 用 :
$ pg_ctl -o "-F -p 5433" start
STOPPING THE
SERVER 停 止 服 務 器
$ pg_ctl stop 停 止 服 務
器 , 使 用 -m 開 關
允 許 我 們 控 制
如 何 把 後 端 停
下 來 。 -w等 待 服
務 器 停 止 。 -m 聲
明 後 端 的 停 止
模 式 。
RESTARTING THE SERVER 重 起 服 務 器 這 個 命 令 幾 乎 等 於 先 停 止 postmaster 然 後 再 啓 動 她 , 只 不 過 pg_ctl 保 存 並 重 新 使 用 上 一 次 運 行 postmaster 的 命 令 行 參 數 。 重 起 服 務 器 的 最 簡 單 的 方 法 是 :
$ pg_ctl restart 重 起 服 務 器 , 等 待 其 停 止 和 重 起 :
$ pg_ctl -w restart 使 用 5433 重 起 並 且 重 起 後 關 閉 fsync:
$ pg_ctl -o "-F -p 5433" restart
SHOWING THE SERVER STATUS 顯 示 服 務 器 狀 態 下 面 是 來 自 pg_ctl 的 狀 態 輸 出 的 例 子 :
$ pg_ctl
status
pg_ctl: postmaster is running (pid: 13718)
Command line was:
/usr/local/pgsql/bin/postmaster ’-D’
’/usr/local/pgsql/data’ ’-p’
’5433’ ’-B’ ’128’
這 是 在 重 起 模
式 裏 使 用 的 命
令 行 。
SEE ALSO 參 見
譯 者
Postgresql 中 文 網 站 何 偉 平 <laser [AT] pgsqldb.org>
跋
本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh