Logical replication'ı izle (pg_stat_subscription, apply hataları, slot lag'i)
PostgreSQLLogical ReplicationKomut
-- Subscriber:
SELECT subname, pid, leader_pid, relid::regclass AS syncing_table, received_lsn, latest_end_lsn, now() - last_msg_receipt_time AS since_last_msg, latest_end_time FROM pg_stat_subscription;
SELECT subname, apply_error_count, sync_error_count, stats_reset FROM pg_stat_subscription_stats;
-- Publisher:
SELECT slot_name, plugin, database, active, wal_status,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), confirmed_flush_lsn)) AS confirmed_lag,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained_wal
FROM pg_replication_slots WHERE slot_type = 'logical';Ne yapar?
Subscriber'da apply/tablesync worker'larını, alınan ve onaylanan LSN'i, son mesaj zamanını ve kümülatif apply/sync hata sayılarını; publisher'da logical slot'un onaylanmamış (confirmed_flush) WAL miktarını ve tuttuğu toplam WAL'ı gösterir.
Ne zaman kullanılır?
Logical replication kurulumunda, sürüm yükseltme/migrasyon geçişinde lag'in sıfıra yaklaştığını doğrulamak ve hata alarmı için.
Dikkat
pid NULL ise apply worker çalışmıyordur (subscription disable edilmiş veya sürekli hata alıp yeniden başlıyor); sunucu logunu kontrol et. apply_error_count artıyorsa çakışma vardır. Duran bir subscription publisher'da WAL ve catalog_xmin biriktirir; publisher diskini ve catalog bloat'ını izle.