Postgresql
Postgresql 複製滯後歐盟/美國
我有一個 Postgres 9.2.1 伺服器主伺服器(在歐盟進行地理本地化)和 2 個從屬副本(一個在歐盟,一個在美國)。歐盟從站也用於讀取查詢,美國僅用於故障轉移。由於選擇查詢,在歐盟是否可能存在複製滯後 > 比美國副本?
我使用這個查詢來提取複製滯後:
SELECT EXTRACT(MILLISECONDS FROM now() - pg_last_xact_replay_timestamp())
我猜您正在使用帶有“熱備用”選項的 postgresql 自己的流複製,而不是像 slony 或 bucardo 這樣的附加複制系統。
使用流複製時,只要備用伺服器上的事務(包括單個查詢)開始,複製就會暫停,以防止複制覆蓋查詢可能嘗試使用的數據。因此,歐盟的複制滯後可能會更高。這在此處記錄。
從屬副本上的
max_standby_streaming_delay
配置參數控制 postgresql 等待事務完成的時間。如果事務沒有完成,postgresql 將中止事務,以便它可以趕上複製。通過調整此設置,您可以減少查詢可能導致的延遲時間量,代價是在伺服器需要趕上時取消查詢。