Работа с базами данных
Резервное копирование БД
Резервное копирование встроенной файловой базы данных
Cервер приложения Proceset раз в сутки в 00:00:00 выполняет резервное копирование (бэкап встроенной файловой базы данных). Резервное копирование по умолчанию осуществляется в системную папку: C:/ProgramData/Infomaximum/backup. Каталог системной папки может быть изменен.
Параметры встроенной файловой базы данных настраиваются в файле: com.infomaximum.platform.component.database.json.
Путь к файлу по умолчанию: C:/ProgramData/Infomaximum/config/com.infomaximum.platform.component.database.json, где:
"periodical_backup_enabled":true/false
— значение, которое определяет, делается ли периодический бэкап или непериодический"backup_path"
— расположение бэкапа базы данных (относительно папки ProgramData)
Резервное копирование ClickHouse (докер-контейнера)
Резервное копирование базы данных ClickHouse не предусмотрено штатными средствами системы. Резервное копирование данных, которые хранятся в ClickHouse, возможно на уровне докер-контейнера. Копируется весь volume, в котором расположена БД ClickHouse.
Перед началом созданием бэкапа необходимо убедиться в наличии образа ubuntu: 20.04 в системе.
При наличии интернета его можно загрузить, выполнив команду:
# docker pull ubuntu:20.04
Процедура резервного копирования:
- Создайте новую папку для сохранения бэкапа:
mkdir /tmp/clickhouse-backup
- Удалите сервис:
docker service rm infomaximum-clickhouse
- Запустите новый контейнер с прокидыванием volume:
docker run -it --rm --mount source=infomaximum-clickhouse,target=/clickhouse -v /tmp:/target ubuntu:20.04 bash
- Внутри контейнера выполните:
tar -czvf /target/infomaximum-clickhouse.tar.gz /clickhouse
- Выйдите из контейнера:
exit
- Повторно создайте сервис.
Предварительно скачайте необходимый образ (ссылка предоставляется дополнительно).
Выполните команду:
docker load -i infomaximum-clickhouse-(название файла)tar.gz
- Созданный бекап расположен:
- /tmp/infomaximum-clickhouse.tar.gz
Резервное копирование данных активности
Для копирования данных активности перейдите в инструмент GraphiQL и выполните следующую процедуру:
- если необходимо бэкапирование данных с разделением по неделям, то используйте следующий вариант GraphiQL-запроса:
{
clickhouse {
extract_data(storage_guid:"<storage_guid>",sql_script: "select id, `time`, employee_account_id, time_offset, program, version, executable_path, `type`, input_type, main_window, tab, url, `domain`, url_path, file_path, file_name, toJSONString(location), toJSONString(location_name), toJSONString (location_type), element_name, element_ctrl, element_hotkey_name, toJSONString (parameters_name), toJSONString(parameters_value), toJSONString (parameters_type), cpu_loading, memory_loading, computer_name, agent_version from `main`.monitoring_activity where toWeek(time) = 8 and toYear(time)=2024")
}
}
Где:
- storage_guid — это идентификатор хранилища данных
- 8 — это неделя в году, а 2024 – год
- если необходимо бэкапирование данных с разделением по месяцам, то используйте второй вариант GraphiQL-запроса:
{
clickhouse {
extract_data(storage_guid:"<storage_guid>",sql_script: "select id, `time`, employee_account_id, time_offset, program, version, executable_path, `type`, input_type, main_window, tab, url, `domain`, url_path, file_path, file_name, toJSONString(location), toJSONString(location_name), toJSONString(location_type), element_name, element_ctrl, element_hotkey_name, toJSONString(parameters_name), toJSONString(parameters_value), toJSONString(parameters_type), cpu_loading, memory_loading, computer_name, agent_version from `main`.monitoring_activity where toMonth(time) = 1 and toYear(time) = 2024")
}
}
Где:
- storage_guid — это идентификатор хранилища данных
- 1 — это месяц в году, т.е. январь, а 2024 — год
После того как выбран нужный вариант GraphiQL-запроса для резервирования данных и подставлены нужные параметры (неделя/месяц и год), измените значения в браузерной строке _…/graphiql?query_
на _……/graphql?query…_
, т.е. уберите букву «i» из слова «graphiql». Нажмите Enter для выполнения запроса и формирования архива с активностью на сервере. После обработки этого запроса сервером скачается архив с файлом активности за указанный период.
Контроль целостности баз данных
Контроль целостности встроенной файловой базы данных по контрольным суммам осуществляется при каждой загрузке системы. В процессе работы контроль целостности БД осуществляться не может. В состав системы встроены средства отладки, которые невозможно удалить, но можно контролировать их активацию. Для этого необходимо отслеживать все изменения в службе «Infomaximum», в частности команду запуска.
Контроль целостности БД ClickHouse входит в поставку.
Сохранение копии обезличенной базы данных
Для сохранения обезличенной БД системы необходимо, чтобы у пользователя была назначена роль доступа с включенной привилегией «Общие настройки» с операцией W (изменение).
Чтобы сохранить обезличенную БД, войдите через GraphQL при выполнении следующего запроса и укажите путь (директорию) для запуска процесса, куда сохранится обезличенная БД.
mutation{
database{
copy_depersonalized_database(path:«c:/database»)
}
}
Где «c:/database» — путь сохранения обезличенной БД.
Для выполнения запроса GraphQL у пользователя должна быть назначена роль доступа с включенной привилегией «Инструмент GraphQL» с операцией E.
Сохранение происходит на сервер, где установлена система. Папка для сохранения создается заранее и должна быть пустой.
Была ли статья полезна?