Postgresql
用於停止 PostgresSQL 備用伺服器的快速關閉模式
假設關閉模式是否正確
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 流式傳輸到副本,然後斷開它。
如果您擔心“如果伺服器處於熱備用狀態,則一旦所有客戶端斷開連接,恢復和流複製將終止”,那是描述當智能關閉對副本而不是主節點啟動時會發生什麼。主伺服器永遠不會“處於熱備狀態”,即只有副本才能處於的狀態。