DBAtlas · Veritabanı operasyon atlası

Logical replication'ı izle (pg_stat_subscription, apply hataları, slot lag'i)

PostgreSQLLogical Replication

Komut

-- 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.

DBAtlas'ta aç →

İlgili