0

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

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. 订阅者如何知道它的逻辑槽甚至发布者被丢弃了

4

1 回答 1

0

不,您无法从订阅者那里获得该信息。订户不知道它还没有收到什么要接收。

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

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

于 2021-04-19T09:40:21.490 回答