Устранение переполнения etcd в кластере PostgreSQL с Patroni | PGLens.

Устранение переполнения базы данных etcd в кластере PostgreSQL с Patroni

Описание проблемы

В отказоустойчивом кластере PostgreSQL, использующем Patroni и etcd, объем базы данных etcd может достичь установленной квоты хранения. В результате появляются ошибки NOSPACE, снижается стабильность работы кластера и могут возникать проблемы с записью новых данных.

Предварительные условия

  • Иметь административный доступ к узлам кластера.
  • Убедиться, что кластер функционирует штатно.
  • Создать резервную копию базы данных etcd.

Шаг 1. Создать резервную копию etcd

etcdctl snapshot save etcd_backup.db

Шаг 2. Получить текущую ревизию

ETCDCTL_API=3 etcdctl --endpoints=:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*'

Шаг 3. Выполнить очистку истории изменений

etcdctl compact <ТЕКУЩАЯ_РЕВИЗИЯ-1000>

Шаг 4. Выполнить дефрагментацию

etcdctl defrag

Шаг 5. Проверить размер базы

ETCDCTL_API=3 etcdctl endpoint status --write-out=table --endpoints=http://<node1>:2379,http://<node2>:2379,http://<node3>:2379

Шаг 6. Сбросить аварийное состояние

ETCDCTL_API=3 etcdctl alarm disarm

Шаг 7. Проверить отсутствие активных предупреждений

Убедиться, что alarm успешно сброшен и кластер работает без предупреждений.

Ожидаемый результат

  • Освобождается место в базе данных etcd.
  • Устраняется ошибка NOSPACE.
  • Размер базы данных уменьшается.
  • Кластер PostgreSQL с Patroni работает штатно.
  • Активные предупреждения отсутствуют.

Бесплатный 7‑дневный аудит PostgreSQL с PGLens

PGLens остается у вас для полноценного тестирования еще до 90 дней БЕСПЛАТНО