| PostgreSQL 7.4 文檔 | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 16. 服務器運行時環境 | Fast Forward | Next |
有好幾種關閉數據庫服務器的方法。 通過給服務器進程發送不同的信號,你就可以控制關閉服務器的方法。
在收到SIGTERM信號後,服務器不再允許新的聯接,但是允許所有活躍的會話正常完成他們的工作, 只有在所有會話都結束任務(通過客戶端請求)後才關閉。 這是 智能關閉。
服務器不再允許新的聯接,向所有活躍服務器發送SIGTERM, (這樣會讓它們立刻退出),然後它等待子進程退出並關閉數據庫。 這是快速關閉。
這是 立即關閉, 會令postmaster向所有子進程發送SIGQUIT並且立即退出(而不會妥善地關閉數據庫系統)。 服務器在收到SIGQUIT之後會立即退出。 這樣做會導致下次啟動時的恢復(通過重放 WAL 日志)。 我們推薦只在緊急的時候使用這個方法。
| Caution |
盡可能不要用SIGKILL關閉服務器。 這樣會導致數據崩潰以及阻止清理共享內存資源,那樣你只能自己手工做這件事。 |
你可以用ps命令找出postmaster 的PID,或者也可以從數據目錄裡的文件 postmaster.pid 裡面找到。所以,舉例來說,要做一次快速關閉:
$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`
程序 pg_ctl是一個封裝好了的腳本, 給這個功能提供了一個便利的手段。