Перейти к содержанию

Статья для предыдущей поддерживаемой версии ПО — 4.7!

Текущая рекомендованная версия — Comindware Platform 5.0. См. документацию к версии 5.0.

Ручной перенос базы данных экземпляра ПО

Введение

В настоящей статье представлена инструкция по переносу копии кэша всего кластера Apache Ignite (далее «Снимки») в новый экземпляр ПО Comindware Business Application Platform (далее «экземпляр ПО», «ПО») под управлением ОС Linux. Снимки можно создавать онлайн, на активном кластере под пользовательской нагрузкой.

Для примера мы рассмотрим перенос базы данных из снимка, созданного на одной машине, в экземпляр ПО, развёрнутый на другой машине.

На обеих машинах ПО установлено по умолчанию в папке /var/www/comindware/

Снимок базы данных Apache Ignite будет создан в папке /var/lib/ignite/snapshots/

Внимание!

Перенос базы данных можно осуществить только посредством создания снимка Apache Ignite! Не пытайтесь создавать копию базы данных на файловом уровне — это приведёт к утрате её работоспособности.

Примечание

Рекомендуется предварительно прочесть всю инструкцию для понимания процедуры в целом.

  1. Все последующие команды следует выполнять от имени суперпользователя root. Для этого введите команду:

    sudo -i
  2. Перейдите в папку ПО:

    cd /var/www/comindware/
  3. Откройте файл Ignite.config в текстовом редакторе nano:

    nano -v Ignite.config

     

  4. Проверьте содержимое директивы <workDirectory>:

    <workDirectory>/path/to/WorkDir</workDirectory>

    Путь к рабочей папке в файле конфигурации Apache Ignite

    Путь к рабочей папке в файле конфигурации Apache Ignite

    Если директива <workDirectory> имеется, она содержит путь к рабочей папке базы данных экземпляра ПО.

    Если директива <workDirectory> отсутствует, база данных экземпляра ПО хранится в папке var/www/comindware/data/Database/

    В ПО версии 4.0.8 по умолчанию задан путь к базе данных экземпляра ПО /var/lib/ignite/. В настоящей инструкции используется этот путь.

  5. Закройте nano:

    ctrl+X
  6. Перейдите в папку с базой данных экземпляра ПО в рабочей папке и выведите на экран её содержимое:

    cd /var/lib/ignite/db/ && ll

    Просмотр содержимого папки с базой данных экземпляра ПО

    Просмотр содержимого папки с базой данных экземпляра ПО 

  7. Проверьте актуальность данных по дате последней записи — она должна совпадать с датой последней активности платформы. В примере на иллюстрации видно, что содержимое папок /marshaller и /node-29690-2969e7d-e435-43b4-983a-7979ccec12c7/ изменялось 21 октября.

  8. Перейдите в папку /tmp/:

    cd /tmp/
  9.  Создайте с помощью nano скрипт snapshot.sh:

    nano snapshot.sh

    Создание скрипта с помощью nano

    Создание скрипта с помощью nano

  10. Введите скрипт создания снимка, например:
    now=$(date +%Y_%m_%d) 
    /usr/share/ignite/bin/control.sh --snapshot create snapshot_$now
  11. Сохраните скрипт: ctrl+O и закройте nano: ctrl+X.
  12. Запустите созданный скрипт из папки /tmp/:

    sh snapshot.sh

    Запуск скрипта создания снимка

    Запуск скрипта создания снимка

  13. Просмотрите содержимое папки со снимками Apache Ignite:

    cd /var/lib/ignite/snapshots/ && ll 

    Содержимое папки со снимками Apache Ignite

    Содержимое папки со снимками Apache Ignite

  14. Создайте архив папки снимка, например, /snapshot_2022_10_21/, и перенесите его на внешнее хранилище.

Важно! При перезапуске ОС содержимое папки /tmp/ удаляется. Поэтому при необходимости перенесите созданный скрипт в личную папку пользователя.

Восстановление базы данных экземпляра ПО из снимка на новой машине

  1. На чистой машине установите ОС Ubuntu Server 22.04 LTS и ПО Comindware Business Application Platform последней версии согласно инструкции в статье «Развертывание Comindware Business Application Platform. Краткое руководство для Ubuntu».
  2. Все последующие команды следует выполнять от имени суперпользователя root. Для этого введите команду:

    sudo -i
  3. Создайте папку для базы данных экземпляра ПО (например, /cmw-db/):
    mkdir /var/www/cmw-db/

    Примечание

    Любые операции копирования в папку базы данных экземпляра ПО и из неё следует выполнять только после отключения сервисов Elasticsearch, comindwareinstancename (где  instancename — имя экземпляра ПО), NGINX, Kafka и Zookeeper.

  4. Остановите сервисы:

    systemctl stop elasticsearch.service comindwareinstancename.service nginx.service kafka.service zookeeper.service
  5. Убедитесь, что сервисы остановлены. Статус должен быть Active: inactive (dead):

    systemctl status zookeeper.service kafka.service nginx.service comindwareinstancename.service elasticsearch.service

    Проверка остановки сервисов Elasticsearch, comindwareinstancename, NGINX, Kafka и Zookeeper

    Проверка остановки сервисов Elasticsearch, comindwareinstancename, NGINX, Kafka и Zookeeper

  6. Скопируйте архив со снимком базы данных экземпляра ПО в папку /tmp/.

  7. Распакуйте архив в текущую папку.

  8. Перенесите содержимое папки снимка (например, /tmp/snapshot_2022_10_21) в папку базы данных экземпляра ПО: /var/www/cmw-db/

    Содержимое папки снимка

    Содержимое папки снимка

  9. Перейдите в папку с ПО:

     cd /var/www/comindware/
  10. Откройте файл Ignite.config в текстовом редакторе nano:

    nano Ignite.config
  11.  Найдите директиву <workDirectory> и укажите в ней путь папке базы данных экземпляра ПО:
    <workDirectory>/var/www/cmw-db</workDirectory>

    Путь к новой папке базы данных в файле конфигурации Apache Ignite

    Путь к новой папке базы данных в файле конфигурации Apache Ignite

  12. Проверьте наличие, а также дату и время создания файлов и папок в папке с базой данных экземпляра ПО:

    cd /var/www/cmw-db/ && ll
    cd /var/www/cmw-db/db/ && ll

    Должны быть указаны дата и время создания снимка, если дата и время не совпадают с временем создания снимка, необходимо повторить перенос базы данных.

    Проверка наличия, даты и времени создания файлов и папок в папке базы данных экземпляра ПО

    Проверка наличия, даты и времени создания файлов и папок в папке базы данных экземпляра ПО

  13. Замените права доступа и владельцев папок:

    cd /var/www/
    chmod -R 777 cmw-db/
    sudo chown -R www-data:www-data cmw-db/
  14. Проверьте права доступа и владельцев папок:

    ll

    Проверка прав доступа и владельцев папок

    Проверка прав доступа и владельцев папок

Запуск и проверка конфигурации экземпляра ПО

  1. Запустите необходимые службы и проверьте их статус. Статус должен быть Active: running:

    systemctl start elasticsearch kafka nginx comindwareinstancename
    systemctl status elasticsearch kafka nginx comindwareinstancename

    Проверка активного состояния сервисов

    Проверка активного состояния сервисов

  2. Перезапустите машину.

  3. Откройте в браузере веб-сайт с экземпляром ПО, например localhost.

  4. Дождитесь инициализации экземпляра ПО после перезапуска. Этот процесс может занять некоторое время. Может потребоваться обновить страницу браузера.
    • Если загрузка веб-страницы экземпляра ПО завершается ошибкой, заново выполните перенос базы данных с полным удалением всего содержимого папки базы данных экземпляра ПО и использованием предыдущей резервной копии.
  5. Проверьте и исправьте конфигурацию экземпляра ПО, как указано в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».

Связанные статьи

Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии