Перейти к основному контенту

База данных: устройство и параметры

Клавдий хранит все данные в реляционной базе данных: настройки, состояние задач, письма, очередь оповещений, метрики. Узел использует пул соединений для эффективной работы с базой.

Группа Содержание
Настройки источники, учётные записи, правила доступа, каталог, сервер IMAP, оповещения
Состояние фоновые задачи, метрики, сегменты поискового индекса
Письма сообщения, папки, вложения, адреса, заголовки
Оповещения очередь уведомлений
Аудит журнал удалений писем, журнал заморозок

Узел поддерживает пул соединений к базе и переиспользует их между запросами. При исчерпании пула запросы ожидают освобождения соединения.

Как проверить состояние пула

  1. Откройте Панель состояния.
  2. В блоке [Системные метрики] — строки:
    • База данных (PostgreSQL) — подключений N (свободно X из Y, лимит Z); «недоступен» при сбое;
    • Подключения к БД (за час) — выдано соединений, неудачных.

При временном сбое базы задача автоматически повторяется и не приводит к остановке узла (см. Задачи и очередь).

Если пул переполнен

  • Увеличьте размер пула (параметр в общих настройках или переменная окружения).
  • Проверьте отсутствие зависших задач, которые держат соединения (см. Задачи и очередь).
  • Распределите нагрузку по узлам кластера (см. Кластер и узлы).

Изменения структуры базы (миграции) применяются автоматически при старте узла: если версия схемы в коде новее версии в базе, узел применяет недостающие миграции сам.

Не выполняйте изменения схемы вручную. Ручные изменения рассинхронят версию схемы → повторное применение миграции → ошибка «transaction is aborted».

Если версия схемы базы данных не соответствует версии приложения, не изменяйте служебные таблицы вручную. Выполните штатную процедуру обновления или восстановления и сохраните журналы запуска для диагностики.

Клавдий собирает метрики работы системы и хранит их на трёх уровнях детализации. Это позволяет сохранять историю за длительный срок без чрезмерного роста объёма.

Уровень Точность Срок хранения
Свежие данные раз в минуту 7 дней (по умолчанию)
Часовые сводки раз в час 2 года
Суточные сводки раз в сутки 5 лет

Принцип: чем свежее данные, тем они детальнее; чем старше — тем грубее, но хранятся дольше.

  • Свежие данные. Узел накапливает показатели в памяти и раз в минуту записывает их.
  • Часовые сводки. Фоновая задача раз в час сворачивает минутные точки за прошедший час в одну часовую (для счётчиков — сумма, для показателей состояния — максимум и последнее значение).
  • Суточные сводки. Та же задача раз в сутки сворачивает часовые сводки за прошедшие сутки в одну суточную.

Как проверить работу свёртки

В Задачах и очереди найдите задачу [Сворачивание метрик] — проверьте её состояние и последний запуск.

Пароли источников, учётные записи привязки каталога, пароль оповещений и секретные ключи S3-бэкендов хранятся в зашифрованном виде (AES-256-GCM). Целостность настроек защищена контрольной суммой (HMAC): при обнаружении несогласованного изменения запись помечается как повреждённая и не используется. Удаления писем по сроку фиксируются в неизменяемом журнале аудита. Подробнее — см. Защита данных.

Навигация по книге

  • Следующая статья: SMTP