我在私有1Gb局域网上的两个postgreSQL 9.3服务器之间运行一个相当简单的WAL流复制设置,但最近我注意到复制延迟越来越大:
# SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS slave_lag;
slave_lag
-----------
5.50896服务器并不特别忙,所以我想知道我能做些什么来调查这个问题,或者可能修复它。
发布于 2014-05-08 21:11:58
你试过看:
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复制停止,这将不能正常工作,因此您需要通过其他机制定期检查是否正在运行复制。
发布于 2014-05-08 15:16:42
在非繁忙的服务器上,该值将不会反映您希望看到的数字。它的字面意思是“最后一次有东西被推给我是在5.50896秒前”。由于您的服务器不忙,这很可能是您的主服务器上最后一次提交,而不是该从服务器延迟。
发布于 2015-01-22 18:07:55
我相信这种差异很可能是由于每个服务器上的时钟不同造成的。
https://dba.stackexchange.com/questions/64756
复制相似问题