Postgresql

用於停止 PostgresSQL 備用伺服器的快速關閉模式

  • June 27, 2018

假設關閉模式是否正確smart,即

pg_ctlcluster 9.6 main stop

不適用於 PostgreSQL 備用伺服器,並且我將始終必須使用關閉模式fast(或immediate)來代替:

pg_ctlcluster 9.6 main stop -m fast

我假設是因為這個段落pg_ctl(1)

可以使用 -m 選項選擇三種不同的關閉方法。“智能”模式等待所有活動客戶端斷開連接並等待任何線上備份完成。如果伺服器處於熱備狀態,一旦所有客戶端斷開連接,恢復和流複製將終止。“快速”模式(預設)不等待客戶端斷開連接,並將終止正在進行的線上備份。回滾所有活動事務並強制斷開客戶端連接,然後關閉伺服器。“立即”模式將立即中止所有伺服器程序,無需徹底關閉。這將導致在下次重新啟動時執行崩潰恢復。

我有點猶豫,因為到目前為止我只在相對緊急情況下使用fast(或)。immediate

WAL 接收器既不是活動客戶端,也不是線上備份。因此,在主節點上執行的所謂“智能”關閉不會無限期地等待 WAL 接收器自行消失。相反,它將主動斷開 WAL 接收器。這幾乎是它做的最後一件事——它等待關閉檢查點完成,並將包含該檢查點記錄的 WAL 流式傳輸到副本,然後斷開它。

如果您擔心“如果伺服器處於熱備用狀態,則一旦所有客戶端斷開連接,恢復和流複製將終止”,那是描述當智能關閉對副本而不是主節點啟動時會發生什麼。主伺服器永遠不會“處於熱備狀態”,即只有副本才能處於的狀態。

引用自:https://dba.stackexchange.com/questions/210680