База данных: устройство и параметры
Клавдий хранит все данные в реляционной базе данных: настройки, состояние задач, письма, очередь оповещений, метрики. Узел использует пул соединений для эффективной работы с базой.
| Группа | Содержание |
|---|---|
| Настройки | источники, учётные записи, правила доступа, каталог, сервер IMAP, оповещения |
| Состояние | фоновые задачи, метрики, сегменты поискового индекса |
| Письма | сообщения, папки, вложения, адреса, заголовки |
| Оповещения | очередь уведомлений |
| Аудит | журнал удалений писем, журнал заморозок |
Узел поддерживает пул соединений к базе и переиспользует их между запросами. При исчерпании пула запросы ожидают освобождения соединения.
Как проверить состояние пула
- Откройте Панель состояния.
- В блоке [Системные метрики] — строки:
- База данных (PostgreSQL) — подключений N (свободно X из Y, лимит Z); «недоступен» при сбое;
- Подключения к БД (за час) — выдано соединений, неудачных.
При временном сбое базы задача автоматически повторяется и не приводит к остановке узла (см. Задачи и очередь).
Если пул переполнен
- Увеличьте размер пула (параметр в общих настройках или переменная окружения).
- Проверьте отсутствие зависших задач, которые держат соединения (см. Задачи и очередь).
- Распределите нагрузку по узлам кластера (см. Кластер и узлы).
Изменения структуры базы (миграции) применяются автоматически при старте узла: если версия схемы в коде новее версии в базе, узел применяет недостающие миграции сам.
Не выполняйте изменения схемы вручную. Ручные изменения рассинхронят версию схемы → повторное применение миграции → ошибка «transaction is aborted».
Если версия схемы базы данных не соответствует версии приложения, не изменяйте служебные таблицы вручную. Выполните штатную процедуру обновления или восстановления и сохраните журналы запуска для диагностики.
Клавдий собирает метрики работы системы и хранит их на трёх уровнях детализации. Это позволяет сохранять историю за длительный срок без чрезмерного роста объёма.
| Уровень | Точность | Срок хранения |
|---|---|---|
| Свежие данные | раз в минуту | 7 дней (по умолчанию) |
| Часовые сводки | раз в час | 2 года |
| Суточные сводки | раз в сутки | 5 лет |
Принцип: чем свежее данные, тем они детальнее; чем старше — тем грубее, но хранятся дольше.
- Свежие данные. Узел накапливает показатели в памяти и раз в минуту записывает их.
- Часовые сводки. Фоновая задача раз в час сворачивает минутные точки за прошедший час в одну часовую (для счётчиков — сумма, для показателей состояния — максимум и последнее значение).
- Суточные сводки. Та же задача раз в сутки сворачивает часовые сводки за прошедшие сутки в одну суточную.
Как проверить работу свёртки
В Задачах и очереди найдите задачу [Сворачивание метрик] — проверьте её состояние и последний запуск.
Пароли источников, учётные записи привязки каталога, пароль оповещений и секретные ключи S3-бэкендов хранятся в зашифрованном виде (AES-256-GCM). Целостность настроек защищена контрольной суммой (HMAC): при обнаружении несогласованного изменения запись помечается как повреждённая и не используется. Удаления писем по сроку фиксируются в неизменяемом журнале аудита. Подробнее — см. Защита данных.
Навигация по книге
- Следующая статья: SMTP