PostgreSQL7.0手冊-用戶手冊-20. 應用 - pg_ctl
2019-09-08 23:33:31
供稿:網友
pg_ctl
名稱
pg_ctl -- 啟動,停止,和重起 postmaster
語法
pg_ctl [-w] [-D datadir][-p path] [-o "options"] start
pg_ctl [-w] [-D datadir] [-m [s[mart]|f[ast]|i[mmediate]]] stop
pg_ctl [-w] [-D datadir] [-m [s[mart]|f[ast]|i[mmediate]]
[-o "options"] restart
pg_ctl [-D datadir] status
輸入
-w
通過觀察 pid 文件(PGDATA/postmaster.pid)的創建,等待數據庫服務器的啟動.在 60 秒后超時.
-D datadir
聲明這個數據庫安裝的數據庫位置.
-p path
聲明 postmaster 影象的位置.
-o "options"
聲明直接傳遞給 postmaster 的選項.
通常這些參數用單或雙引號引起,以保證它們以一組的方式傳遞.
-m mode
聲明關閉模式.
smart, s
智能模式,等待所有客戶端退出.這是缺省.
f[ast], f
快速模式,向后端發送 SIGTERM,這意味著活躍的事務都回卷.
immediate, i
立即模式,向后端發送 SIGUSR1 并且讓它們退出.在這種模式,下一次啟動將必須進行數據庫恢復工作.
start
啟動 postmaster.
stop
關閉 postmaster.
restart
重新啟動 postmaster,執行一次順序的 stop/start.
status
顯示 postmaster 的當前狀態.
輸出
pg_ctl: postmaster is state (pid: #)
Postmaster 狀態.
如果存在一個錯誤條件,將顯示出后端的錯誤信息.
描述
pg_ctl 是一個用于啟動,停止和重起 postmaster 的工具.
用法
啟動 postmaster
要啟動 postmaster:
> pg_ctl start
如果使用了 -w,pg_ctl 等待數據庫服務器啟動-通過觀察 pid 文件(PGDATA/postmaster.pid)的創建,最多等待 60 秒.
激活 postmaster 的參數從下面的資源里獲取:
postmaster 的路徑:在命令搜索路徑里查找.
數據庫目錄:PGDATA 環境變量.
其他參數:PGDATA/postmaster.opts.default.
postmaster.opts.default 包含用于 postmaster 的參數.缺省安裝時,打開了 -S 選項.因此 pg_ctl start 隱含地是:
postmaster -S
請注意 postmaster.opts.default 是由 initdb 從 Postgres 的安裝目錄(lib/postmaster.opts.default.sample 是安裝 Postgres 時從 src/bin/pg_ctl/postmaster.opts.default.sample )里的?lib/postmaster.opts.default.sample 拷貝來的.
要覆蓋缺省的參數,你可以使用 -D,-p 和 -o 選項.
一個啟動 postmaster,并等到l postmaster 啟動后才退出的例子是:
> pg_ctl -w start
要聲明 postmaster 二進制路徑,試試:
> pg_ctl -p /usr/local/pgsq/bin/postmaster start
對一個使用端口5433,并且運行在無磁盤同步的模式的 postmaster,使用:
> pg_ctl -o "-o -F -p 5433" start
停止 postmaster
> pg_ctl stop
停止 postmaster.使用 -m 開關以允許我們控制后端是如何停止的.-w 等待 postmaster 停止.-m 聲明停止的模式.
重起 postmaster
這個功能幾乎等同于停止 postmaster 然后再次啟動它-除了停止它前的參數還要使用以外.這是通過在 $PGDATA/postmaster.opts 文件里存儲這些參數實現的.-w,-D,-m,-fast,-immediate 也可以在重起模式使用,并且和上面有一樣的含義.
要用最簡單的方法重起 postmaster:
> pg_ctl restart
要重起 postmaster,等它停止并重新啟動:
> pg_ctl -w restart
要在 5433 端口重起并且重起后關閉 fsync:
> pg_ctl -o "-o -F -p 5433" restart
postmaster 狀態
要從 postmaster 獲取狀態信息:
> pg_ctl status
下面是一些從 pg_ctl 里的例子:
pg_ctl: postmaster is running (pid: 13718)
options are:
/usr/local/src/pgsql/current/bin/postmaster
-p 5433
-D /usr/local/src/pgsql/current/data
-B 64
-b /usr/local/src/pgsql/current/bin/postgres
-N 32
-o '-F'