Provided by:
manpages-zh_1.5-1_all 
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 ]
DESCRIPTIONyz
postmaster 是 PostgreSQL 多使用者數據庫伺服器。 一茷廕搰陘F訪問一-
蚍畬w,它(通過網路或本地)聯接到一蚢B行著的 postmaster。 然後該
postmaster 啟動一蚇W立的伺服器進程("postgres") 以操作聯接。
postmaster 還控制伺服器進程之間的通訊。
預設時postmaster在前台啟動並且向標準錯誤系統輸出列印日誌信息。
在實際應用裏,postmaster應該作為I景進程啟動,也許該在啟動時。
一舁ostmaster總是管理來自同一蚍畬w集群的數據。 一-
蚍畬w集群是一套在同一蚗仵蚳t統位置存放數據的數據庫。 當 postmaster
啟動時,它需n知道數據庫集群檔案("數據區")的位置。 這荌捊O通過傳遞
-D 命令行選項或者 PGDATA 環境變量實現的,沒有預設C 一-
茖t統上同時可以運行幾 postmaster 進程, 只n他-
怢洏峇ㄕP的數據區和不同的端口號(見下文)。 一蚍痚洉O用 initdb(1)
創建的。
OPTIONS項
postmaster 接受下列命令行參數。 關於這些選項的更詳細的討論請參考
Section 16.4 ``Run-time Configuration''。你也可以通過設置一-
荌t置檔案來減少敲擊這些選項。
-A 0|1 打開運行時斷言檢查,是檢測編程錯誤的調試幫助。
只有在編譯時打開了它,你才能使用它。如果編譯時打開了,預設是打開。
-B nbuffers
為伺服器進程分配和管理的共享記憶體緩沖區數量。此w設為 64
蚑w沖區,每蚑w沖區是 8k 字節。
-c name=value
設置一茤R名的運行時參數。參考 Section 16.4 ``Run-time
Configuration'' 獲取列表和描z。
大多數其他命令行選項實際上都是這樣的參數賦熊u形式。 -c
可以出現多次用以設置多荌捊C
-d debug-level
設置調試級別。數V高,寫到伺服器日誌的調試輸出越多。 數圍是
1 到 5。
-D datadir
聲明數據目錄的檔案系統路徑。參閱上文的討論。
-F 關閉 fsync 調用,提高性能,但是n冒系統崩潰時數據毀壞的滅I。 這-
蚇龠給奰釧韟b postgresql.conf 中設置
fsync=false。在使用之前閱讀詳細文件!
--fsync=true 有著這蚇龠答漱炱效果。
-h hostname
聲明 postmaster 偵聽著等待來自前端應用聯接的 TCP 主機名或地址。
它預設偵聽所有配置了的地址(包括 localhost)。
-i 這蚇龠等普} TCP/IP (網際域套接字)通訊。 沒有這-
蚇龠窗A只能進行本地 Unix 域套接字通訊。 這蚇龠紫幼藺韟b
postgresql.conf 中設置 tcpip_socket=true。
--tcpip-socket=false 是這蚇龠答漪菑洈漣@用。
-k directory
指定 postmaster 偵聽等待來自前端應用聯接的 Unix 域套接字的位置。
預設通常是 /tmp,但是可以在編譯的時婟改。
-l 這蚇龠等普}用 SSL 進行的安全通訊。同樣還需n -i 選項。n使用這-
蚇龠窗A編譯時你必須打開了 SSL 選項。
-N max-connections
設置postmaster允許啟動的伺服器伺服器的最大數目。預設配置時,該-
32, 如果你的系統能支持更多進程,該-
怳j可以設置為你的系統所能支持的極。 時蚹鵅]參閱
src/include/config.h)。 (請注意 -B 選項n求至少是兩 -N。參閱
Section 16.5 ``Managing Kernel Resources''
獲取有關大客戶量的系統資源需求的信息。)
-o extra-options
在 extra-options 裏聲明的 postgres 選項都傳遞給所有由這
postmaster 啟動的服務進程。 參閱 postgres(1) 獲取可能選項。
如果選項字串包含任何空白,整茼r串必須引起來。
-p port
指定 postmaster 偵聽著等待客戶端應用連接的網際網路 TCP/IP
端口或一茈誚a Unix 域套接字檔案擴展(描z符)。
預設的端口號是環境變量 PGPORT 的C如果沒有設置 PGPORT 預設是
PostgreSQL 編譯時建立的]通常是 5432)。 如果你聲明了一-
茷D預設端口,那麼所有前端應用(包括 psql)都必須用命令行選項或者
PGPORT 聲明同一蚨搕f。
-S 指明 postmaster 進程將以安靜模式啟動。也就是說,
它將與使用者的(控制)tty 脫離並且啟動其自赤熄i程組。
並且它把標準輸出和標準錯誤咿w向到 /dev/null。
使用這荈}關會將日誌輸出都丟棄,可能不是你希望的,
因為這樣令錯誤查找非常困難。參閱下文獲取一茼bI景啟動 postmaster
的更好的方法。
--silent-mode=false 的作用和這蚇龠答漁蘆G正好相反。
--name=value
設置一茤R名的運行時參數;其縮寫形式是 -c。
有兩蚚B外的命令行選項可以用於調試導P伺服器異常退出。
用於這種狀況的一般策略是通知所有其它伺服器必須退出, 然後-
奐s初始化共享記憶體和信號燈。這是因為一-
茈X錯的伺服器在退出前可能已經破壞了一些共享的狀態。
這些選項控制這種環境下的 postmaster 的性質,而且沒有-
蚇龠筋O為普通操作準備的。
這些特殊選項是:
-n postmaster 將不會奐s初始化共享數據結構。 一茼雩g驗的系統程式-
這時就可以使用調試器檢查共享記憶體和信號燈狀態。
-s postmaster 將通過發送信號SIGSTOP
停止所有其他伺服器進程,但不會導P它怜h出。 這樣就允許系統程式-
手動從所有伺服器進程收集傾邞漁痐腄]core dumps)。
ENVIRONMENT境
PGCLIENTENCODING
客戶端使用的確預設字符編碼。(客戶端可以獨立地覆蓋這荂C)這-
]可以在配置檔案裏設置。
PGDATA 預設數據目錄位置
PGDATESTYLE
運行時參數datestyle的預設C(不再建議使用環境變量)
PGPORT 預設端口(最好在配置檔案中設置)
TZ 伺服器時區
其它環境變量可以用於指定可選地數據存儲位置。參閱 Section 18.5
``Managing Databases'' 獲取更多信息。
DIAGNOSTICSE
一荋ㄗ鴗F semget 或者 shmget 的錯誤訊息可能意味著你需n配置你的核心,
提供足夠的共享記憶體和信號燈。更多討論,參閱 Section 16.5 ``Managing
Kernel Resouces'' 。
Tip: 提示: 你也可以通過飢C shared_buffers 的參數以減少
PostgreSQL的共享記憶體的消耗, 或者-
飢Cmax_connections的參數減少PostgreSQL的信號燈的消耗,
以此可以推遲奐s配置核心。
如果是一蚖‘t外一 postmaster
正在運行的錯誤訊息,那你應該確保沒有其他的 postmaster
進程正在運行。判斷這荓〞p的最簡單的辦法是使用命令
$ ps ax | grep postmaster
或
$ ps -ef | grep postmaster
具體使用種取決於你的系統。如果確信沒有沖突的 postmaster
在運行,那麼你可以刪除消息裏提到的鎖檔案然後再次運行。
一蚖△L法綁定端口的錯誤訊息可能表明該端口已經I其它非 PostgreSQL
進程使用。 如果你終止postmaster後又馬上用同一-
蚨搕f運行它,你也有可能得到這蚇欞~訊息;
這時,你必須多等幾秒,等作業系統關閉了該端口後再試。
最後,如果你使用了一荍@業系統認為是保留的端口,也可能導P這蚇欞~訊息。
例如,我的 Unix 版本認為低於 1024 的端口號是"可信任的",因而只有 Unix
超級使用者可以使用它怴C
NOTES`N
如果有可能n使用 SIGKILL殺死 postmaster。 這樣會阻止
postmaster在退出前釋放它持有的系統資源(例如共享記憶體和信號燈)。
n正常結束 postmaster,可以使用信號 SIGTERM,SIGINT, 或 SIGQUIT。
第一茷H號將等待所有的客戶端退出後才退出。 第二-
荓N強制斷開所有客戶端,而第三荓N不停止立刻退出, 導P在城_時的恢復運行。
工具命令 pg_ctl(1) 可以用於安全而有效地啟停 postmaster。
選項 -- 在FreeBSD或者 OpenBSD上無法運行。 應該用
-c。這在受影響的系統裏是荅鞃峞F 如果這茪繶f沒有袑犰n,將來的 PostgreSQL
版本將提供一蚋順}的辦法。
EXAMPLESl
用預設bI景啟動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 裏悸熙]置, 而不是尪鄔R令行開關設置參數。
SEE ALSO見
initdb(1), pg_ctl(1)
者
Postgresql <laser@pgsqldb.org>