這些參數可以在任何發送復制數據給一個或多個后備服務器的服務器上設置。主控機總是一個發送服務器,因此這些參數總是要在主控機上設置。這些參數的角色和含義不會在一個后備機變成主控機后改變。
max_wal_senders (integer)
指定來自后備服務器或流式基礎備份客戶端的并發連接的最大數量(即同時運行WAL 發送進程 的最大數)。默認值是10,0值意味著禁用復制。WAL 發送進程被計算在連接總數內,因此該參數 不能被設置為高于max_connections的值。突然的流客戶端斷開 連接可能導致一個孤立連接槽(知道達到超時),因此這個參數應該設置得略高于最大客戶端連接數,這樣斷開連接的客戶端可以立刻重新連接。這個參數只能在服務器啟動時被設置。 wal_level必須設置為archive或更高級別以允許來自后備服務器的連接。
max_replication_slots (integer)
指定服務器可以支持的復制槽最大數量。默認值為10。這個參數只能在服務器啟動時設置。要允許使用復制槽, wal_level必須被設置為archive或 更高。把它的值設置為低于現有復制槽的數量會阻止服務器啟動。
wal_keep_segments (integer)
指定在后備服務器需要為流復制獲取日志段文件的情況下,pg_wal目錄下所能保留的過去日志文件段的最小數目。每個段通常是 16 兆字節。如果一個連接到發送服務器的后備服務器落后了超過wal_keep_segments個段,發送服務器可以移除一個后備機仍然需要的 WAL 段,在這種情況下復制連接將被中斷。最終結果是下行連接也將最終失敗(不過,如果在使用 WAL 歸檔,后備服務器可以通過從歸檔獲取段來恢復)。只設置pg_wal中保留的文件段的最小數目;系統可能需要為 WAL 歸檔或從一個檢查點恢復保留更多段。如果wal_keep_segments為零(默認值), 更多的空間來 存放WAL歸檔或從一個檢查點恢復。如果wal_keep_segments是零(缺省), 系統不會為后備目的保留任何多余的段,因此后備服務器可用的舊 WAL 段的數量是一個上個檢查點位置和 WAL 歸檔狀態的函數。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。
wal_sender_timeout (integer)
中斷那些停止活動超過指定毫秒數的復制連接。這對發送服務器檢測一個后備機崩潰或網絡中斷有用。零值將禁用該超時機制。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是 60 秒。
track_commit_timestamp (boolean)
記錄事務提交時間。這個參數只能在postgresql.conf文件或者服務器命令行上設置。缺省值是off。