Некоторые функции PostgreSQL, которые помогают отслеживать состояние репликации:
- pgstatreplication. www.dragonflydb.io Предоставляет информацию об активных соединениях репликации с сервером PostgreSQL. www.dragonflydb.io В нём есть такие полезные поля, как состояние репликации (например, потоковая передача, резервное копирование), полученный LSN (номер последовательности журнала), воспроизведённый LSN и другие. www.dragonflydb.io Это помогает определить лаг между основным и вторичным серверами. www.dragonflydb.io
- pgreplicationslots. www.dragonflydb.io С помощью этой функции можно проверить, правильно ли используются слоты репликации и не вызывают ли они проблемы с местом на диске на основном сервере из-за неубранных сегментов WAL. www.dragonflydb.io
- pgcurrentwal_lsn(). habr.com Позволяет посмотреть текущую позицию в журнале транзакций. habr.com
- pglastwalreceivelsn(), pglastxlogreceivelocation(). habr.com Аналогичная функция для реплик, которая даёт возможность посмотреть последнюю полученную позицию журнала транзакций. habr.com
- pgwallsndiff(), pgxloglocationdiff(). habr.com Эта функция принимает две позиции из журнала транзакций и показывает дистанцию между ними в байтах. habr.com Она полезна для определения лага между мастером и репликами в байтах. habr.com
- pglastxactreplaytimestamp(). habr.com Работает только на реплике и позволяет посмотреть время, когда была выполнена последняя проигранная транзакция. habr.com
Также для более комплексного мониторинга состояния репликации можно использовать внешние инструменты, например, PgAdmin, Prometheus и Grafana, Nagios. www.dragonflydb.io