Работа с базами данных
Резервное копирование БД
Резервное копирование встроенной файловой базы данных
Cервер приложения Proceset раз в сутки в 00:00:00 выполняет резервное копирование (бэкап встроенной файловой базы данных). Резервное копирование по умолчанию осуществляется в системную папку: C:/ProgramData/Infomaximum/backup. Каталог системной папки может быть изменен.
Параметры встроенной файловой базы данных настраиваются в файле: com.infomaximum.subsystem.database. json.
Путь к файлу по умолчанию: C:/ProgramData/Infomaximum/config/com.infomaximum.subsystem.database.json., где:
- periodical_backup_enabled - boolean – значение, которое определяет, делается ли периодический бэкап или непериодический;
- database_path – расположение базы данных (относительно папки ProgramData);
- 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-запроса:
query{
clickhouse{
extract_data(sql_script:"select time, time_ms, employee_id,
computer_account_id, time_offset, program, version, type,
toString(ui_hierarchy_name) as ui_hierarchy_name, toString(ui_hierarchy_ctrl)
as ui_hierarchy_ctrl, toString(ui_hierarchy_cls) as ui_hierarchy_cls,
toString(form_data_name) as form_data_name, toString(form_data_value) as
form_data_value, im_row_number from
`com.infomaximum.subsystem.monitoring`.activity where toWeek(time) = 18 and
toYear(time)=2020")
}}
Где 18 – это неделя в году, а 2020 – год.
- Если необходимо бэкапирование данных с разделением по месяцам, то используйте второй вариант GraphiQL-запроса:
query{
clickhouse{
extract_data(sql_script:"select time, time_ms, employee_id,
computer_account_id, time_offset, program, version, type,
toString(ui_hierarchy_name) as ui_hierarchy_name, toString(ui_hierarchy_ctrl)
as ui_hierarchy_ctrl, toString(ui_hierarchy_cls) as ui_hierarchy_cls,
toString(form_data_name) as form_data_name, toString(form_data_value) as
form_data_value, im_row_number from
`com.infomaximum.subsystem.monitoring`.activity where toMonth(time) = 1 and
toYear(time) = 2020")
}}
Где 1 – это месяц в году, т.е. январь, а 2020 – год.
После того, как выбран нужный вариант 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.
Сохранение происходит на сервер, где установлена система. Папка для сохранения создается заранее и должна быть пустой.