Архивация активности
В системе предусмотрена архивация данных активности. Это позволяет уменьшить нагрузку на основную встроенную файловую базу данных, уменьшить размер базы и сократить количество фоновых процессов, связанных с активностью.
Архивация активности не затрагивает БД ClickHouse.
Создание экземпляра базы данных
База данных за конкретный год создается в двух случаях:
- При миграции данных из текущей структуры на основании метаинформации о существующих в системе месячных колонках
- В случае поступления в систему активности, где год отличается от существующих в системе годичных баз данных, а также если отсутствует информация о ее отсоединении от системы
Сервер Proceset, получая пакет активности от агента мониторинга, записывает принятые данные в промежуточную встроенную файловую базу данных. Промежуточная БД расположена по пути {dataDir}\databases\monitoring_raw_data
. После этого выполняется сбор и обработка принятой информации и запись в другую встроенную БД, соответствующую году, за который поступила информация.
Новая база данных по умолчанию создается в каталоге {dataDir}, «рабочей директории» платформы — {dataDir}\databases\monitoring_activity_{yyyy}
, где:
{dataDir}
— рабочая директорияmonitoring_activity_
— префикс наименования базы данных{yyyy}
— год колонки
Данные активности индексируются по порядку поступления на сервер. Первая строка с активностью, поступившей на сервер Proceset, получит id = 1
, а поступившая десятой — id = 10
.
Если в activity_database
запись за {yyyy}
год отсутствует, запускается процесс создания базы за указанный год. В каталоге {dataDir}\databases\
создается папка monitoring_activity_{yyyy}. Если в каталоге существует папка, то приложение записывает в лог соответствующее исключение. Инициализируется DBProvider — экземпляр подключения к встроенной файловой базе данных. В базе monitoring_activity_{yyyy}
создаются колонки:
activity_idx_{yyyy}
activity_{yyyy}
default
В ColumnFamily default
заносятся данные:
CREATE_DATE
— дата создания экземпляра базы данныхYEAR
— год, к которому относится база данныхGUID
— уникальный идентификатор
Если в процессе инициализации БД происходит ошибка, то приложение записывает в лог соответствующее исключение. В доменную сущность activity_database
в базе мониторинга заносятся данные созданной БД:
guid
year
Новый экземпляр подключения к встроенной файловой базе данных регистрируется в сервисе записи активности.
Между встроенной файловой базой данных сервера Proceset и СУБД ClickHouse, которая используется как хранилище данных, происходит периодическая синхронизация данных активности.
На стороне СУБД ClickHouse данные записываются в таблицу main.monitoring_activity
. В процессе синхронизации сервер Proceset определяет последний индекс активности, которая записана в указанной таблице ClickHouse, после записывает в нее недостающие данные относительно встроенной файловой СУБД.
Данные активности от агентов мониторинга хранятся одновременно и на стороне сервера Proceset, и на стороне сервера системной СУБД ClickHouse. Это сделано для надежности, так как данные от агентов мониторинга генерирует сама система Proceset, и их невозможно восстановить из других источников.
Удаление и восстановление данных активности на сервере СУБД ClickHouse
Сервер Proceset синхронизирует данные по последнему индексу активности, который есть в таблице на стороне СУБД ClickHouse. Если удалить строки до этого индекса, то они не будут заново синхронизированы.
Данными активности в таблице main.monitoring_activity можно оперировать до строки с самым последним индексом любым способом, который доступен в СУБД ClickHouse.
Будьте осторожны при выполнении операций копировать, удалить, вставить, так как они влияют на корректность данных в дашбордах, которые построены на данных активности.
Очистив таблицу (TRUNCATE
) main.monitoring_activity, можно инициировать полную синхронизацию всех данных активности из встроенной СУБД Proceset в СУБД ClickHouse.
Удаление и восстановление данных активности на сервере Proceset
С сервера Proceset можно удалять данные активности по годам, отключая соответствующие внутренние БД. Для этого:
- Остановите службу сервера Proceset (Infomaximum или Infomaximum-app в зависимости от ОС).
- Вырежьте из каталога
{dataDir}\databases\monitoring_activity_{yyyy}
каталог с данными за нужный год. - Запустите службу сервера Proceset.
После этого сервер Proceset не сможет обращаться к данным за этот год.
Если от агентов мониторинга придут данные за удаленный год, то они будут помещены в категорию поврежденных (corrupted
). Поврежденные данные можно будет корректно обработать, если подключить обратно БД за нужный год.
Для того, чтобы подключить к серверу Proceset ранее удаленную БД с данными за год, выполните действия в обратном порядке:
- Отключите службу сервера Proceset.
- Поместите в каталог
{dataDir}\databases\
ранее вырезанную папку с БД. - Запустите службу.
Каждой встроенной БД с активностью система присваивает идентификатор GUID. Если GUID базы данных, расположенной в {dataDir}\databases\
, неизвестен системе, то эта БД не будет подключена. В связи с этим возможно подключение и отключение БД с активностью только в рамках одного экземпляра сервера Proceset.
Перенос данных активности на сервере Proceset в другую директорию
При необходимости файловые БД с данными активности на сервере Proceset можно перенести в другую директорию. Для этого:
- Остановите службу сервера Proceset (Infomaximum или Infomaximum-app в зависимости от ОС).
- Переместите из каталога
{dataDir}\databases\monitoring_activity_{yyyy}
каталог с данными за нужный год в нужную директорию. - Внесите в конфигурационный файл com.infomaximum.subsystem.monitoring.json новый блок по примеру ниже:
Если таких БД несколько, укажите их через запятую.
external_activity_databases:["C:\\activity_data_database\2021"]
- Запустите службу сервера Proceset.
Была ли статья полезна?