Ручной перенос базы данных экземпляра ПО
Введение
Здесь представлена инструкция по переносу копии кэша Apache Ignite (далее «Снимки») в новый экземпляр ПО Comindware Platform под управлением ОС Linux. Снимки можно создавать онлайн, под пользовательской нагрузкой.
Для примера мы рассмотрим перенос базы данных из снимка, созданного на одной машине, в экземпляр ПО, развёрнутый на другой машине.
На обеих машинах ПО установлено по умолчанию в папке /var/www/comindware/
Снимок базы данных Apache Ignite будет создан в папке /var/lib/comindware/<instanceName>/Database/snapshots/
Внимание!
Перенос базы данных можно осуществить только посредством создания снимка Apache Ignite! Не пытайтесь создавать копию базы данных на файловом уровне — это приведёт к утрате её работоспособности.
Примечание
Рекомендуется предварительно прочесть всю инструкцию для понимания процедуры в целом.
Создание снимка базы данных
-
Все последующие команды следует выполнять от имени суперпользователя
root. Для этого введите команду:sudo -sили
su - -
Перейдите в папку ПО:
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/Путь к базе данных экземпляра ПО:
/var/lib/comindware/<instanceName>/Database/db. См. «Пути и содержимое папок экземпляра ПО». -
Закройте nano:
ctrl+X -
Перейдите в папку с базой данных экземпляра ПО в рабочей папке и выведите на экран её содержимое:
cd /var/lib/comindware/<instanceName>/Database/dbdb/ && 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/comindware/<instanceName>/Database/snapshots/ && ll
Содержимое папки со снимками Apache Ignite -
Создайте архив папки снимка, например, /snapshot_2022_10_21/, и перенесите его на внешнее хранилище.
Важно!
При перезапуске ОС содержимое папки /tmp/ удаляется. Поэтому при необходимости перенесите созданный скрипт в личную папку пользователя.
Восстановление базы данных экземпляра ПО из снимка на новой машине
- На чистой машине установите ОС Linux и Comindware Platform последней версии согласно инструкции в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».
-
Все последующие команды следует выполнять от имени суперпользователя
root. Для этого введите команду:sudo -sили
su - -
Создайте папку для базы данных экземпляра ПО (например,
/cmw-db/):mkdir /var/www/cmw-db/Примечание
Любые операции копирования в папку базы данных экземпляра ПО и из неё следует выполнять только после отключения сервисов Elasticsearch, comindware (где
<instanceName>— имя экземпляра ПО), NGINX, Kafka и Zookeeper. -
Остановите сервисы:
systemctl stop elasticsearch.service comindware<instanceName>.service nginx.service kafka.service zookeeper.service -
Убедитесь, что сервисы остановлены. Статус должен быть
Active: inactive (dead):systemctl status zookeeper.service kafka.service nginx.service comindware<instanceName>.service elasticsearch.service
Проверка остановки сервисов Elasticsearch, comindware, 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/ && llcd /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 comindware<instanceName>systemctl status elasticsearch kafka nginx comindware<instanceName>
Проверка активного состояния сервисов -
Перезапустите машину.
- Откройте в браузере веб-сайт с экземпляром ПО, например
localhost. -
Дождитесь инициализации экземпляра ПО после перезапуска. Этот процесс может занять некоторое время. Может потребоваться обновить страницу браузера.
- Если загрузка веб-страницы экземпляра ПО завершается ошибкой, заново выполните перенос базы данных с полным удалением всего содержимого папки базы данных экземпляра ПО и использованием предыдущей резервной копии.
-
Проверьте и исправьте конфигурацию экземпляра ПО, как указано в статье «Проверка и настройка конфигурации экземпляра ПО после восстановления из резервной копии».
Эта статья была полезна 1 чел.