Ручной перенос базы данных экземпляра ПО
Содержание
Введение
В настоящей статье представлена инструкция по переносу копии кэша всего кластера Apache Ignite (далее «Снимки») в новый экземпляр ПО Comindware Business Application Platform (далее «экземпляр ПО», «ПО») под управлением ОС Linux. Снимки можно создавать онлайн, на активном кластере под пользовательской нагрузкой.
Для примера мы рассмотрим перенос базы данных из снимка, созданного на одной машине, в экземпляр ПО, развёрнутый на другой машине.
На обеих машинах ПО установлено по умолчанию в папке /var/www/comindware/
Снимок базы данных Apache Ignite будет создан в папке /var/lib/ignite/snapshots/
Внимание!
Перенос базы данных можно осуществить только посредством создания снимка Apache Ignite! Не пытайтесь создавать копию базы данных на файловом уровне — это приведёт к утрате её работоспособности.
Примечание
Рекомендуется предварительно прочесть всю инструкцию для понимания процедуры в целом.
Создание снимка базы данных
-
Все последующие команды следует выполнять от имени суперпользователя
root
. Для этого введите команду:sudo -i
-
Перейдите в папку ПО:
cd /var/www/comindware/
-
Откройте файл
Ignite.config
в текстовом редакторе nano:nano -v Ignite.config
-
Проверьте содержимое директивы
<workDirectory>
:<workDirectory>/path/to/WorkDir</workDirectory>
Путь к рабочей папке в файле конфигурации Apache Ignite
Если директива
<workDirectory>
имеется, она содержит путь к рабочей папке базы данных экземпляра ПО.Если директива
<workDirectory>
отсутствует, база данных экземпляра ПО хранится в папкеvar/www/comindware/data/Database/
В ПО версии 4.0.8 по умолчанию задан путь к базе данных экземпляра ПО
/var/lib/ignite/
. В настоящей инструкции используется этот путь. -
Закройте nano:
ctrl+X
-
Перейдите в папку с базой данных экземпляра ПО в рабочей папке и выведите на экран её содержимое:
cd /var/lib/ignite/db/ && ll
Просмотр содержимого папки с базой данных экземпляра ПО
-
Проверьте актуальность данных по дате последней записи — она должна совпадать с датой последней активности платформы. В примере на иллюстрации видно, что содержимое папок
/marshaller
и/node-29690-2969e7d-e435-43b4-983a-7979ccec12c7/
изменялось 21 октября. -
Перейдите в папку
/tmp/
:cd /tmp/
-
Создайте с помощью nano скрипт
snapshot.sh
:nano snapshot.sh
Создание скрипта с помощью nano
- Введите скрипт создания снимка, например:
now=$(date +%Y_%m_%d)
/usr/share/ignite/bin/control.sh --snapshot create snapshot_$now
- Сохраните скрипт:
ctrl+O
и закройте nano:ctrl+X
. -
Запустите созданный скрипт из папки
/tmp/
:sh snapshot.sh
Запуск скрипта создания снимка
-
Просмотрите содержимое папки со снимками Apache Ignite:
cd /var/lib/ignite/snapshots/ && ll
Содержимое папки со снимками Apache Ignite
-
Создайте архив папки снимка, например, /snapshot_2022_10_21/, и перенесите его на внешнее хранилище.
/tmp/
удаляется. Поэтому при необходимости перенесите созданный скрипт в личную папку пользователя.Восстановление базы данных экземпляра ПО из снимка на новой машине
- На чистой машине установите ОС Ubuntu Server 22.04 LTS и ПО Comindware Business Application Platform последней версии согласно инструкции в статье «Развертывание Comindware Business Application Platform. Краткое руководство для Ubuntu».
-
Все последующие команды следует выполнять от имени суперпользователя
root
. Для этого введите команду:sudo -i
- Создайте папку для базы данных экземпляра ПО (например,
/cmw-db/
):mkdir /var/www/cmw-db/
Примечание
Любые операции копирования в папку базы данных экземпляра ПО и из неё следует выполнять только после отключения сервисов Elasticsearch, comindwareinstancename (где
instancename
— имя экземпляра ПО), NGINX, Kafka и Zookeeper. -
Остановите сервисы:
systemctl stop elasticsearch.service comindwareinstancename.service nginx.service kafka.service zookeeper.service
-
Убедитесь, что сервисы остановлены. Статус должен быть
Active: inactive (dead)
:systemctl status zookeeper.service kafka.service nginx.service comindwareinstancename.service elasticsearch.service
Проверка остановки сервисов Elasticsearch, comindwareinstancename, NGINX, Kafka и Zookeeper
-
Скопируйте архив со снимком базы данных экземпляра ПО в папку
/tmp/
. -
Распакуйте архив в текущую папку.
-
Перенесите содержимое папки снимка (например,
/tmp/snapshot_2022_10_21
) в папку базы данных экземпляра ПО:/var/www/cmw-db/
Содержимое папки снимка
-
Перейдите в папку с ПО:
cd /var/www/comindware/
-
Откройте файл
Ignite.config
в текстовом редакторе nano:nano Ignite.config
-
Найдите директиву
<workDirectory>
и укажите в ней путь папке базы данных экземпляра ПО:<workDirectory>/var/www/cmw-db</workDirectory>
Путь к новой папке базы данных в файле конфигурации Apache Ignite
-
Проверьте наличие, а также дату и время создания файлов и папок в папке с базой данных экземпляра ПО:
cd /var/www/cmw-db/ && ll
cd /var/www/cmw-db/db/ && llДолжны быть указаны дата и время создания снимка, если дата и время не совпадают с временем создания снимка, необходимо повторить перенос базы данных.
Проверка наличия, даты и времени создания файлов и папок в папке базы данных экземпляра ПО
-
Замените права доступа и владельцев папок:
cd /var/www/
chmod -R 777 cmw-db/sudo chown -R www-data:www-data cmw-db/
-
Проверьте права доступа и владельцев папок:
ll
Проверка прав доступа и владельцев папок
Запуск и проверка конфигурации экземпляра ПО
-
Запустите необходимые службы и проверьте их статус. Статус должен быть
Active: running
:systemctl start elasticsearch kafka nginx comindwareinstancename
systemctl status elasticsearch kafka nginx comindwareinstancenameПроверка активного состояния сервисов
-
Перезапустите машину.
-
Откройте в браузере веб-сайт с экземпляром ПО, например
localhost
. - Дождитесь инициализации экземпляра ПО после перезапуска. Этот процесс может занять некоторое время. Может потребоваться обновить страницу браузера.
- Если загрузка веб-страницы экземпляра ПО завершается ошибкой, заново выполните перенос базы данных с полным удалением всего содержимого папки базы данных экземпляра ПО и использованием предыдущей резервной копии.
- Если загрузка веб-страницы экземпляра ПО завершается ошибкой, заново выполните перенос базы данных с полным удалением всего содержимого папки базы данных экземпляра ПО и использованием предыдущей резервной копии.
- Проверьте и исправьте конфигурацию экземпляра ПО, как указано в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».
Связанные статьи
Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии
Эта статья была полезна 3 чел.