@@ -25,26 +25,30 @@ The `CNPGClusterLogicalReplicationErrors` alert indicates that a logical replica
2525# Connect to the subscriber and check subscription status
2626kubectl exec -it svc/SUBSCRIBER-CLUSTER-rw -n NAMESPACE -- psql -c "
2727SELECT
28- subname,
29- subenabled,
30- apply_error_count,
31- sync_error_count,
32- stats_reset
33- FROM pg_stat_subscription
34- WHERE apply_error_count > 0 OR sync_error_count > 0;
28+ s.subname,
29+ s.subenabled,
30+ COALESCE(sss.apply_error_count, 0) AS apply_error_count,
31+ COALESCE(sss.sync_error_count, 0) AS sync_error_count,
32+ sss.stats_reset
33+ FROM pg_subscription s
34+ LEFT JOIN pg_stat_subscription_stats sss ON s.oid = sss.subid
35+ WHERE COALESCE(sss.apply_error_count, 0) > 0 OR COALESCE(sss.sync_error_count, 0) > 0;
3536"
3637
3738# Check the last error message
3839kubectl exec -it svc/SUBSCRIBER-CLUSTER-rw -n NAMESPACE -- psql -c "
3940SELECT
40- subname,
41- last_msg_receipt_time,
42- latest_end_time,
41+ s. subname,
42+ ss. last_msg_receipt_time,
43+ ss. latest_end_time,
4344 CASE
44- WHEN apply_error_count > 0 THEN 'Apply errors detected'
45- WHEN sync_error_count > 0 THEN 'Sync errors detected'
45+ WHEN COALESCE(sss.apply_error_count, 0) > 0 THEN 'Apply errors detected'
46+ WHEN COALESCE(sss.sync_error_count, 0) > 0 THEN 'Sync errors detected'
47+ ELSE 'No errors detected'
4648 END as error_type
47- FROM pg_stat_subscription;
49+ FROM pg_subscription s
50+ LEFT JOIN pg_stat_subscription ss ON s.oid = ss.subid
51+ LEFT JOIN pg_stat_subscription_stats sss ON s.oid = sss.subid;
4852"
4953```
5054
@@ -96,21 +100,21 @@ FROM pg_publication;
96100kubectl exec -it svc/SUBSCRIBER-CLUSTER-rw -n NAMESPACE -- psql -c "
97101SELECT
98102 subname,
99- srconninfo ,
100- srschema ,
101- srslotname ,
102- srsynccommit
103+ subconninfo ,
104+ subslotname ,
105+ subsynccommit ,
106+ subpublications
103107FROM pg_subscription;
104108"
105109
106110# Check which tables are being replicated
107111kubectl exec -it svc/SUBSCRIBER-CLUSTER-rw -n NAMESPACE -- psql -c "
108112SELECT
109- relid ::regclass as table_name,
110- srsubstate as state
111- FROM pg_subscription_rel
112- JOIN pg_class ON relid = oid
113- WHERE srsubstate NOT IN ('r', 's'); -- Not ready or synchronizing
113+ sr.srrelid ::regclass as table_name,
114+ sr. srsubstate as state
115+ FROM pg_subscription_rel sr
116+ JOIN pg_class c ON sr.srrelid = c. oid
117+ WHERE sr. srsubstate NOT IN ('r', 's'); -- Not ready or synchronizing
114118"
115119```
116120
@@ -378,4 +382,4 @@ ALTER TABLE table_name ENABLE TRIGGER trigger_name;
378382 - You encounter frequent constraint violations
379383 - The schema cannot be synchronized
380384 - You need to skip transactions repeatedly
381- - Error rate is increasing despite fixes
385+ - Error rate is increasing despite fixes
0 commit comments