5
Очистка слотов
Удаление неактивных слотов, предотвращение заполнения диска
20 минУрок 5 из 6
Прогресс0%
Теория
Неактивные слоты могут привести к заполнению диска, так как PostgreSQL не удаляет WAL, пока слот их требует.
Регулярно проверяйте и удаляйте неиспользуемые слоты.
Удаление слота безопасно, если реплика больше не подключена к нему.
Используйте pg_drop_physical_replication_slot() для удаления слотов.
Практика
1. Поиск неактивных слотов
Найдите слоты, которые не используются:
Поиск неактивных слотов
Команда
sudo -u postgres psql -c "SELECT slot_name, active, pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) AS lag_bytes FROM pg_replication_slots WHERE active = false;"Вывод:
slot_name | active | lag_bytes -----------+--------+----------- (0 rows)
2. Удаление неактивного слота
Удалите слот, который больше не нужен:
Удаление неактивного слота
Команда
sudo -u postgres psql -c "SELECT pg_drop_replication_slot('standby2_slot');"Вывод:
pg_drop_replication_slot -------------------------- (1 row)
3. Проверка после удаления
Убедитесь, что слот удалён:
Проверка после удаления
Команда
sudo -u postgres psql -c "SELECT slot_name FROM pg_replication_slots;"Вывод:
slot_name --------------- standby1_slot (1 row)
Проверка
Проверьте, что удалённый слот больше не существует:
Проверка
Команда
sudo -u postgres psql -c "SELECT count(*) FROM pg_replication_slots WHERE slot_name = 'standby2_slot';"Вывод:
count
-------
0