4
Мониторинг слотов
pg_replication_slots, active_pid, restart_lsn, WAL бэклог
30 минУрок 4 из 6
Прогресс0%
Теория
Мониторинг слотов критически важен для предотвращения заполнения диска WAL-файлами.
Если слот неактивен太久, он накапливает WAL, которые не могут быть удалены.
Ключевые метрики: restart_lsn (начальная позиция), confirmed_flush_lsn (подтверждённая позиция), wal_status.
Используйте pg_stat_replication для отслеживания состояния подключённых реплик.
Практика
1. Подробная информация о слотах
Получите детальную информацию о всех слотах:
Подробная информация о слотах
Команда
sudo -u postgres psql -c "SELECT slot_name, active, restart_lsn, confirmed_flush_lsn, wal_status, safe_wal_size FROM pg_replication_slots;"Вывод:
slot_name | active | restart_lsn | confirmed_flush_lsn | wal_status | safe_wal_size ---------------+--------+-------------+---------------------+------------+--------------- standby1_slot | t | 0/1000000 | | reserved | 1048576
2. Размер WAL-бэклога
Проверьте, сколько WAL накоплено для слота:
Размер WAL-бэклога
Команда
sudo -u postgres psql -c "SELECT slot_name, pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) AS restart_lag_bytes FROM pg_replication_slots WHERE active = true;"Вывод:
slot_name | restart_lag_bytes ---------------+------------------- standby1_slot | 1024
3. Мониторинг через представление
Используйте встроенное представление для мониторинга:
Мониторинг через представление
Команда
sudo -u postgres psql -c "SELECT * FROM pg_stat_replication;"Вывод:
pid | usesysid | usename | application_name | client_addr | ... -------+----------+-----------+------------------+-------------+----- 12345 | 1638 | replicator | walreceiver | standby-ip | ...
Проверка
Убедитесь, что размер бэклога минимален:
Проверка
Команда
sudo -u postgres psql -c "SELECT slot_name, pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) < 10485760 AS is_healthy FROM pg_replication_slots WHERE active = true;"Вывод:
slot_name | is_healthy ---------------+------------ standby1_slot | t