【问题标题】:Postgres Logical Replication - Monitor Subscriber Without Accessing the Publisher ServerPostgres 逻辑复制 - 在不访问发布服务器的情况下监控订阅服务器
【发布时间】:2021-04-19 09:16:15
【问题描述】:

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

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。订阅者如何知道其逻辑槽甚至发布者已被删除

【问题讨论】:

  • received_lsn - latest_end_lsn 是从发布者收到但尚未重播的字节大小。这相当于某种“滞后”。

标签: postgresql logical-replication


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 2012-11-17
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多