Postgresql

postgreSQL 9.3 流複製延遲

  • January 22, 2015

我正在私有 1Gb LAN 上的兩個 postgreSQL 9.3 伺服器之間執行一個相當簡單的 WAL 流複製設置,但最近我注意到複製延遲越來越多:

# SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS slave_lag;
slave_lag 
-----------
5.50896

伺服器不是特別忙,所以我想知道我可以做些什麼來調查這個問題或可能修復它。

您是否嘗試過查看:

SELECT
    CASE
         WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location() THEN 0
         ELSE EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp())::INTEGER
    END
AS replication_lag;

這裡的想法是,如果兩台伺服器都同步,那麼就沒有延遲。如果它們不同步,則顯示延遲。

這裡的一個潛在問題是如果 PostgreSQL 複製停止,這將無法正常工作,因此您需要通過其他機制定期檢查以查看複製是否正在執行。

在非繁忙伺服器上,該值不會反映您期望看到的數字。它的字面意思是“最後一次推送給我的東西是 5.50896 秒前”。由於您的伺服器不忙,這很可能是最後一次在您的主伺服器上發生送出,而不是從伺服器延遲。

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