Provided by: manpages-zh_1.6.3.3-2_all bug

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