POSTMASTER(1) | PostgreSQL Server Applications | POSTMASTER(1) |
postmaster - PostgreSQL多用戶數據庫服務器
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 ]
postmaster 是 PostgreSQL 多用戶數據庫服務器。 一個客戶端爲了訪問一個數據庫,它(通過網絡或本地)聯接到一個運行着的 postmaster。 然後該 postmaster 啓動一個獨立的服務器進程("postgres") 以操作聯接。 postmaster 還控制服務器進程之間的通訊。
缺省時postmaster在前臺啓動並且向標準錯誤系統輸出打印日誌信息。
在實際應用裏,postmaster應該作爲後臺進程啓動,也許該在啓動時。
一個postmaster總是管理來自同一個數據庫集羣的數據。
一個數據庫集羣是一套在同一個文件系統位置存放數據的數據庫。
當 postmaster
啓動時,它需要知道數據庫集羣文件("數據區")的位置。
這個參數是通過傳遞 -D
命令行選項或者 PGDATA
環境變量實現的,沒有缺省值。
一個系統上同時可以運行幾個
postmaster 進程,
只要他們使用不同的數據區和不同的端口號(見下文)。
一個數據區是用 initdb(1)
創建的。
postmaster 接受下列命令行參數。 關於這些選項的更詳細的討論請參考 Section 16.4 ``Run-time Configuration''。你也可以通過設置一個配置文件來減少敲擊這些選項。
--fsync=true 有着這個選項的反面效果。
--tcpip-socket=false 是這個選項的相反的作用。
使用這個開關會將日誌輸出都丟棄,可能不是你希望的,
因爲這樣令錯誤查找非常困難。參閱下文獲取一個在後臺啓動
postmaster 的更好的方法。
--silent-mode=false 的作用和這個選項的效果正好相反。
有兩個額外的命令行選項可以用於調試導致服務器異常退出。
用於這種狀況的一般策略是通知所有其它服務器必須退出,
然後重新初始化共享內存和信號燈。這是因爲一個出錯的服務器在退出前可能已經破壞了一些共享的狀態。
這些選項控制這種環境下的
postmaster
的性質,而且沒有哪個選項是爲普通操作準備的。
這些特殊選項是:
一個提到了 semget 或者 shmget 的錯誤信息可能意味着你需要配置你的內核, 提供足夠的共享內存和信號燈。更多討論,參閱 Section 16.5 ``Managing Kernel Resouces'' 。
如果是一個說另外一個
postmaster
正在運行的錯誤信息,那你應該確保沒有其他的
postmaster
進程正在運行。判斷這個情況的最簡單的辦法是使用命令
$ ps ax | grep postmaster或
$ ps -ef | grep postmaster
一個說無法綁定端口的錯誤信息可能表明該端口已經背其它非
PostgreSQL 進程使用。
如果你終止postmaster後又馬上用同一個端口運行它,你也有可能得到這個錯誤信息;
這時,你必須多等幾秒,等操作系統關閉了該端口後再試。
最後,如果你使用了一個操作系統認爲是保留的端口,也可能導致這個錯誤信息。
例如,我的 Unix
版本認爲低於 1024
的端口號是"可信任的",因而只有
Unix
超級用戶可以使用它們。
如果有可能,不要使用 SIGKILL殺死 postmaster。 這樣會阻止 postmaster在退出前釋放它持有的系統資源(例如共享內存和信號燈)。
要正常結束
postmaster,可以使用信號
SIGTERM,SIGINT, 或 SIGQUIT。
第一個信號將等待所有的客戶端退出後才退出。
第二個將強制斷開所有客戶端,而第三個將不停止立刻退出,
導致在重起時的恢復運行。
工具命令 pg_ctl(1)
可以用於安全而有效地啓停
postmaster。
選項 -- 在FreeBSD或者 OpenBSD上無法運行。 應該用 -c。這在受影響的系統裏是個臭蟲; 如果這個毛病沒有修補好,將來的 PostgreSQL 版本將提供一個繞開的辦法。
用缺省值在後臺啓動postmaster,鍵入:
$ nohup postmaster >logfile 2>&1 </dev/null &
以指定的端口啓動
postmaster:
$ postmaster -p 1234
$ psql -p 1234
$ export PGPORT=1234 $ psql
命名的運行時參數可以用下列的風格之一設置:
$ postmaster -c sort_mem=1234 $ postmaster --sort-mem=1234
Postgresql 中文網站 何偉平 <laser@pgsqldb.org>
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
2003-11-02 | Application |