Postgres 逻辑复制 - 在不访问发布服务器的情况下监控订阅服务器

时间:2021-04-19 09:16:15

标签: postgresql logical-replication

我希望每个订阅服务器都可以在不访问发布服务器的情况下监控其运行状况

1. 我使用来自发布者的以下代码来获得延迟。是否也可以从订阅服务器计算延迟

  SELECT 
        slot_name, active, confirmed_flush_lsn, pg_current_wal_lsn(), 
        (pg_current_wal_lsn() - confirmed_flush_lsn) AS bytes_lag
    FROM pg_replication_slots;

如果我使用订阅者的以下内容

select received_lsn, latest_end_lsn from pg_stat_subscription

我仍需要发布商提供以下内容 select pg_current_wal_lsn();

有没有办法在不访问发布者的情况下知道延迟?

2.我在导致复制停止的表之一中有重复值,但是

select srsubstate from pg_subscription_rel 

对于所有表格都显示为“r”。

  • 我怎么知道哪个表有问题
  • 我怎么知道复制停止的原因是什么

3.订阅者如何知道其逻辑槽甚至发布者已被删除

1 个答案:

答案 0 :(得分:0)

不,您无法从订阅者那里获得该信息。订阅者不知道有什么是它尚未收到的。

要找出复制中断的原因,您必须查看订阅者的日志文件。是的,这是手动活动,但冲突解决也是如此。

您将很快确定复制槽是否已被删除,因为日志中会出现令人讨厌的错误消息。这与删除的表非常相似。

相关问题