這些設置空值接收復制數據的一個后備服務器的行為。它們的值與主服務器無關。
hot_standby (boolean)
指定在恢復期間,你是否能夠連接并運行查詢。默認值是on。這個參數只能在服務器啟動時設置。它只在歸檔恢復期間或后備機模式下才有效。
max_standby_archive_delay (integer)
當熱后備機處于活動狀態時,這個參數決定取消那些與即將應用的WAL 項沖突的后備機查詢之前,后備服務器應該等待多久。當 WAL 數據被從 WAL 歸檔(并且因此不是當前的 WAL)時,max_standby_archive_delay可以應用。默認值是 30 秒。如果沒有指定,衡量單位是毫秒。值 -1 允許后備機一直等到沖突查詢結束。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。注意,max_standby_archive_delay與取消之前一個查詢能夠運行的最長時間不同;它表示應用任何一個 WAL 段數據能夠被允許的最長總時間。因此,如果一個查詢早于 WAL 段導致了顯著的延遲,后續沖突查詢將只有更少的時間。
max_standby_streaming_delay (integer)
當熱后備機處于活動狀態時,這個參數決定取消那些與即將應用的WAL 項沖突的后備機查詢之前,后備服務器應該等待多久。當 WAL 數據正在通過流復制被接收時,max_standby_streaming_delay可以應用。默認值是 30 秒。如果沒有指定,衡量單位是毫秒。值 -1 允許后備機一直等到沖突查詢結束。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。注意,max_standby_streaming_delay與取消之前一個查詢能夠運行的最長時間不同;它表示在從主服務器接收到 WAL 數據并立刻應用它能夠被允許的最長總時間。因此,如果一個查詢導致了顯著的延遲,后續沖突查詢將只有更少的時間,直到后備服務器再次趕上進度。
wal_receiver_status_interval (integer)
指定在后備機上的WAL 接收者進程向主服務器或上游后備機發送有關復制進度的信息的最小頻度,它可以使用pg_stat_replication視圖看到。后備機將報告它已經寫入的上一個預寫式日志位置、它已經刷到磁盤的上一個位置以及它已經應用的最后一個位置。這個參數的值是報告之間的最大間隔,以秒計。每次寫入或刷出位置改變時會發送狀態更新,或者至少按這個參數的指定的頻度發送。因此,應用位置可能比真實位置略微滯后。將這個參數設置為零將完全禁用狀態更新。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是 10 秒。
hot_standby_feedback (boolean)
指定一個熱后備機是否將會向主服務器或上游后備機發送有關于后備機上當前正被執行的查詢的反饋。這個參數可以被用來排除由于記錄清除導致的查詢取消,但是可能導致在主服務器上用于某些負載的數據庫膨脹。反饋消息的發送頻度不會高于每個wal_receiver_status_interval周期發送一次。默認值是off。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。如果使用級聯復制,反饋將被向上游傳遞直到它最后到達主服務器。后備機在接收到反饋之后除了傳遞給上游不會做任何其他操作。這個設置不會覆蓋主服務器上的old_snapshot_threshold的行為,后備服務器上一個超過了主服務器年齡閾值的快照可能會變得不可用,導致后備服務器上事務的取消。這是因為old_snapshot_threshold 是為了對死亡行能夠存在的時間給出一個絕對限制,不然就會因為一個后備服務器的配置而被違背。
wal_receiver_timeout (integer)
中止處于非活動狀態超過指定毫秒數的復制鏈接。這對于正在接收的后備服務器檢測主服務器崩潰或網絡斷開有用。值零會禁用超時機制。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是 60 秒。
wal_retrieve_retry_interval (integer)
指定等待服務器應等待多長時間時,當重試檢索WAL數據之前來自任何源 (流復制,本地pg_wal或者WAL歸檔)的WAL數據不可用。 此參數只能在postgresql.conf文件或服務器命令行設置。缺省值是5秒。如果沒有指定,單位是毫秒。此參數有助于配置恢復節點控制等待新的WAL數據可用的時間數。例如,在歸檔恢復中,通過減少此參數的值檢測一個新的WAL日志文件中使得恢復更加敏感,這種做法是有可能的。在一個低WAL活動系統中,增加它減少了必要的訪問WAL歸檔的需求量,一些有用例子在云環境中訪問基礎設施的時間量要考慮在內。