我们的逻辑复制最近由于键冲突而停止-工资下降了,但没有应用。我想设置一些监控,以便在发生这种情况时可以得到通知,但是我不确定要使用哪些字段。
我认为我应该能够使用pg_stat_subscription视图,但是从其description不确定其列所代表的含义。
我可以将源的pg_current_wal_lsn()与副本的pg_stat_subscription.received_lsn进行比较,以确保数据下降了吗?
received_lsn pg_lsn Last write-ahead log location received, the initial value of this field being 0
然后将副本的pg_stat_subscription.received_lsn与它的pg_stat_subscription.latest_end_lsn进行比较,是否会让我知道数据是否正在重放?
latest_end_lsn pg_lsn Last write-ahead log location reported to origin WAL sender
这是我最不确定的最后一个问题-“报告给原始WAL发送者”是否意味着复制已在副本上成功重放?还是我需要使用其他字段来了解副本已成功应用源数据库中的更改的距离?