В настоящей статье представлена инструкция по переносу копии кэша всего кластера 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/
удаляется. Поэтому при необходимости перенесите созданный скрипт в личную папку пользователя.Все последующие команды следует выполнять от имени суперпользователя 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
.
Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии
Номер Статьи: 2137
Размещено: Tue, Sep 27, 2022
Последнее обновление: Tue, Jul 2, 2024
Online URL: https://kb.comindware.ru/article/ruchnoj-perenos-bazy-dannyh-ekzemplyara-po-2137.html