Введение
Здесь представлены инструкции по восстановлению базы данных Comindware Business Application Platform для следующего сценария:
- используется ранее настроенный экземпляр ПО Comindware Business Application Platform под управлением ОС Linux;
- имеется файл резервной копии базы данных с расширением
.CDBBZ; - резервная копия создана с помощью встроенной в ПО функции «Резервное копирование» (см. «Резервное копирование. Настройка и запуск, просмотр журнала сеансов»);
- индексы Elasticsearch восстанавливаются отдельно от восстановления базы данных экземпляра ПО.
Восстановление базы данных и скриптов
-
Перейдите в режим суперпользователя:
sudo -sили
su - -
Остановите службы экземпляра ПО (где
<instanceName>— имя экземпляра ПО):systemctl stop comindware<instanceName>systemctl stop apigateway<instanceName>ps -fax | grep <instanceName> | grep Agentkill -9 $(ps -eo pid,args | grep <instanceName> | grep Agent | awk {'print $1'})#илиsystemctl stop adapterhost<instanceName> -
С помощью команды
systemctl status <serviceName>удостоверьтесь, что службы остановлены. -
Перейдите в директорию с резервной копией, например
/home/<user>cd /home/<user> -
Создайте временную директорию для распакованной резервной копии (например,
tmp):mkdir tmp -
Распакуйте архив резервной копии в директорию
tmp:unzip -q <backupName>.cdbbz -d tmp/ -
Перейдите в директорию
tmpи просмотрите её содержимое:cd tmpls -
После распаковки архива в директории быть 3 директории:
Database,Scripts,Streams.Примечание
Если в распакованной резервной копии имеется директория
IgniteвместоDatabase, переименуйте её вDatabase:mv Ignite Database -
Для восстановления резервной копии используйте следующие параметры из YML-файла конфигурации экземпляра ПО
/usr/share/comindware/configs/instance/<instanceName>.yml:databasePath: <path/to/Database>— путь к директории базы данных;userStorage.localDisk.path: <path/to/Streams>— путь к директории пользовательских файлов;Просмотрите откройте файл конфигурации с помощью следующей команды:
cat /usr/share/comindware/configs/instance/<instanceName>.yml -
Убедитесь в наличии директорий
<path/to/Database>и<path/to/Streams>:ls -lh `<path/to/Database>`ls -lh `<path/to/Streams>`-
Если папки отсутствуют, создайте их:
mkdir -p `<path/to/Database>`mkdir -p `<path/to/Streams>`
-
-
Перейдите в директорию распакованной резервной копии (например,
/home/<user>/temp/). -
Переместите директорию
ScriptsвDatabase:mv Scripts Database -
Переместите содержимое резервной копии в директории экземпляра ПО:
mv Database/* <path/to/Database>mv Streams/* <path/to/Streams> -
Назначьте перенесённым директориям права
rwxrw-rw-:chmod -R 766 <path/to/Database/folder> <path/to/Streams> /var/lib/comindware/<instanceName> -
Назначьте перенесенным директориям владельца:
chown -R <User>:<Group> <path/to/database/folder> <path/to/streams/folder> /var/lib/comindware/<instanceName>Здесь
<User>,<Group>— значения соответствующих параметров из файла/usr/lib/systemd/system/comindware<instanceName>.service -
Если в файле конфигурации экземпляра ПО отсутствует параметр
nodeName(имя узла экземпляра ПО), добавьте его:-
Откройте файл конфигурации для редактирования:
nano /usr/share/comindware/configs/instance/<instanceName>.yml -
Добавьте директиву:
nodeName: <instanceName>
-
-
При необходимости восстановите индексы Elasticsearch из резервной копии.
-
Запустите службы экземпляра ПО и проверьте их статус:
systemctl start comindware<instanceName>systemctl start apigateway<instanceName>systemctl start adapterhost<instanceName>systemctl status comindware<instanceName>systemctl status apigateway<instanceName>systemctl status adapterhost<instanceName> -
Откройте веб-сайт экземпляра ПО.
- Дождитесь инициализации экземпляра ПО. Этот процесс может занять некоторое время. Может потребоваться обновить страницу браузера. См. «Инициализация Comindware Business Application Platform».
- Удостоверьтесь, что все данные из резервной копии восстановлены.
- Проверьте и исправьте конфигурацию экземпляра ПО. См. «Проверка и настройка конфигурации экземпляра ПО Comindware Business Application Platform после восстановления из резервной копии».
-
Удалите временную директорию с распакованной резервной копией:
rm -r /home/<user>/tmp
Восстановление индексов Elasticsearch из файла резервной копии репозитория
-
Остановите службу Elasticsearch и удостоверьтесь, что она остановлена:
systemctl stop elasticsearchsystemctl status elasticsearch -
Создайте папку репозитория Elasticsearch (например,
/var/www/backups/elasticsearch/) и перенесите в неё файлы из каталогаHistoryранее распакованной резервной копии:mkdir /var/www/backups/elasticsearch/mv /var/lib/comindware/<instanceName>/History/* /var/www/backups/elasticsearch/ -
Назначьте папке репозитория и её содержимому права
rwxr-xr-x:chmod -R 755 /var/www/backups/ -
Назначьте владельца
elasticsearchпапке репозитория и её содержимому:chown -R elasticsearch:elasticsearch /var/www/backups/ -
В файле конфигурации
/etc/elasticsearch/elasticsearch.ymlукажите путь к созданному репозиторию:path.repo: /var/www/backups/elasticsearch -
Запустите службу Elasticsearch:
systemctl start elasticsearch.service -
Зарегистрируйте репозиторий (например,
repostory_backup) с резервной копией снимка Elasticsearch:curl -X PUT "localhost:9200/_snapshot/repostory_backup?pretty" -H ’Content-Type: application/json’ -d’{"type": "fs","settings": {"location": "/var/www/backups/elasticsearch"}}Примечание
Шаги 7 и 8 не требуются при восстановлении снимка из хранилища S3.
Для восстановления снимка из хранилища S3 используйте репозиторий с именем, совпадающим с префиксом индекса Elasticsearch.
Этот репозиторий создаётся автоматически при запуске резервного копирования
Префикс индекса задаётся в свойствах подключения к Elasticsearch, используемого по умолчанию.
-
Проверьте содержимое зарегистрированного репозитория:
curl -X GET "localhost:9200/_cat/snapshots/repostory_backup?pretty" -
Восстановите снимок Elasticsearch:
curl -X POST "localhost:9200/_snapshot/repostory_backup/backupSession123/_restore?pretty"- В качестве репозитория укажите имя репозитория, созданного на шаге 7, или префикс индекса Elasticsearch (см. примечание выше).
- В качестве имени снимка укажите идентификатор резервной копии без точки перед номером (например,
backupSession.123указывайте какbackupSession123) со страницы «Администрирование» – «Инфраструктура» – «Резервное копирование» – «Журнал».
-
Проверьте наличие индексов в восстановленном каталоге:
curl -X GET "localhost:9200/_cat/indices?pretty"