Архивация активности
В системе предусмотрена архивация данных активности. Это позволяет уменьшить нагрузку на основную встроенную файловую базу данных, уменьшить размер базы и сократить количество фоновых процессов, связанных с активностью.
Архивация активности не затрагивает БД 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.
Была ли статья полезна?