Postgresql
postgreSQL 9.3 流複製延遲
我正在私有 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 秒前”。由於您的伺服器不忙,這很可能是最後一次在您的主伺服器上發生送出,而不是從伺服器延遲。